Awhile back I helped a client setup a Windows Server 2003 to run as a dedicated Terminal Server for an accounting application.
I configured a GPO (Group Policy Object) that would automatically launch the application when a user logged in, and then would also force the user's Terminal Server connection closed when they exited out of the application.
After a few weeks, the client told me that it was no longer working. The application was launching automatically just like it should, but when users exited out of the app the Terminal Server connection remained open and sitting at a blank screen.
A quick Google Groups search helped me find that this was a known problem when Service Pack 1 for Windows Server 2003 is installed.
The problem has to do with the fact that SP1 launches two instances of userinit.exe at logon. One of these instances is there for the sole purpose of performing Certification Auto Enrollment and can take up to 60 seconds to complete. If a user tries to close out of their Termianl Server session prior to this process completing, the session will remain open at a blank screen.
There is a Citrix KB article that describes both the problem, and a solution. You can create a GPO for the Terminal Server users to simply disable Certification Auto Enrollment when connecting through a Terminal Server session.
So far, this has resolved my issue.