I hit another snag moving WordPress to Windows 2003/IIS6; media uploads don't work. (Interestingly, this doesn't seem to be a problem with Windows 2008/IIS7.) The fix involves creating a temp folder, as Joseph Scott's blog explains:
- Edit upload_tmp_dir option in php.ini. In my case I created an uploads folder in the wwwroot: upload_tmp_dir = "c:inetpubwwwrootuploads"
- Create the c:inetpubwwwrootuploads folder and grant the IUSR full control of it
- Create the uploads folder in your wp-content folder, for me this was in c:inetpubwwwrootwordpress-trunkwp-contentsuploads, then grant the IUSR full control of it
- Restart the IIS service (to pick up the php.ini change)
That fixed the problem for me.