Yes. First, figure out how you are going to implement the survey. You can just use command prompt responses and output it to a file on a network location, you can use some software or build your own, etc. This is well outside of the scope of ServerFault. A basic requirement is that it must be able to deliver exit codes based on whether or not the user completes the survey.
Then, once you have figured out how you are going to deliver the survey, write a script that launches the program/subscript, waits for an exit code, and then acts from there. It must also detect if the program's window has gone out of focus. If the exit code is bad or the window goes out of focus (or even a time limit has been achieved), force a logout.
You might want to first deliver a message box that informs the user of the requirement of the window to stay in focus; otherwise, they may be very frustrated. Alternatively, your program or sub-script can just force the window to stay in focus.
If all goes well, allow the user to carry on by just having the script finish.
Finally, use Group Policy + Login scripts to deliver the script to the target users.
This method will still allow the user to see his desktop, and perhaps do a bit of stuff before the program executes, so it is not perfect. But this is the best way I can think of off the top of my head.