I used to have this problem, but no longer do. Unfortunately with all the changes that I have made over the last few months, its impossible to isolate exactly what the cause was, but I will tell you what I do now.
I use kixtart version 4.62 and I run it from the logon script in the gpo, not from the script tab in the users profile in active directory. Windows 7 and uac doesn't like running from the netlogon folder. use the group policy to run the script.
I don't use the run scripts synchronously as I don't seemt to need it. I also map the drives for the session i.e. not persistent as the persistent setting causes problems with windows 7.
If you are running as local administrators, then you will need to enablelinkedconnections in the registry as it won't work on windows 7 as a local admin because of uac.
Another thing that I do is load all the registry settings first in my script and then do the changes that require explorer to be loaded such as mapping drives etc.

I also use this code at the beginning of the script to make the script wait until the user profile is loaded.

 Code:

? " User logged on is " @userid
While
@UserId = ""
sleep 0.3
? "Sleeping for 300 milliseconds"
Loop


Hope that something here helps