The problem seems to be that your external program wants to open a
window on the desktop. That is only possible if either the program inherits an open desktop (which most programs assume) or if it runs as the same user that owns the desktop and dances around some syscalls in this case (I think this is what the Explorer does). So your external program should be explorer.exe. I don't know the command
line to make it start another program (to inherit the desktop from the explorer).