We just had to set up a WordPress 3.3 install on a Windows Server 2008 R2 box (w/ PHP running in FastCGI) for a client and had a lot of trouble with this issue as well.
Changing permissions on the uploads directory didn’t seem to solve it; WordPress was capable of creating new directories, eg “/uploads/2012/01”, but we would still get the message about it being unable to move the file into the uploads directory.
What worked for us was this post – https://www.ithubs.info/2011/11/30/wordpress-image-upload-problem-using-iis-on-windows-server-2008/. We changed the Anonymous Authentication for the site from the IUSR to the application pool identity as the author describes.
Also, be sure to uncomment and/or enable the line in your php.ini file regarding fastcgi impersonation. That bit wasn’t mentioned in the post above.
fastcgi.impersonate = 1