I had a similar problem. The reason I found was that PHP put the uploaded file on the root instead of inside c:\temp
When some other server try to upload the user is IUSR_servername but that user has no right to c:\
When you upload from the server, you are the user being logged on. (That's strange btw, it should be from IUSR_servername)
Changing php.ini so the upload files go to c:\temp\php worked.
(I made a php folder inside c:\temp, and set permission so that the IUSR_servername user can write to it.)
Then it worked.