Okay... so...

This is the current code... and based on yours (and others) tests, $workdir must be specified. When I was testing this originally, I did not run into this, however I was only testing locally and not actually in a GPO script.
 Code:
    if $workdir
      if exist($workdir)
        $action.WorkingDirectory = '"' + $workdir + '"'
      else
        exit 2
      endif
    endif


Idea 1 Change $kixscript to required, and use path of of script as workdir by default... ie Function RunAsInteractiveUser($KixPath, $kixscript, optional $workdir optional $taskname, optional $donotdelete)
 Code:
    if $workdir=""
      $workdir=left($kixscript,instrrev($kixscript,"\"))
    endif
    if exist($workdir)
      $action.WorkingDirectory = '"' + $workdir + '"'
    else
      exit 2
    endif		



Idea 2 By default just set the workdir to the scriptdir
 Code:
    if $workdir=""
      $workdir=@scriptdir
    endif
    if exist($workdir)
      $action.WorkingDirectory = '"' + $workdir + '"'
    else
      exit 2
    endif	


Comments, Suggestions?