If you don't specify a TempDirectory in your web config. Does it just load to memory and then when you use CopyTo it just copies it from memory?
Also, in Visual Studio running in debug mode (after setting a tempdirectory AND when not setting a TempDirectory) and you use the MoveTo method, I get a 'The process cannot access the file because it is being used by another process.' error. I can use the CopyTo and it works however. This might be a permissions problem?