Here is how I got this to work on Windows Server 2003. As far as I can tell, it's a permissions error, and I'll try to explain why as best as I understand.
Say you have a web directory called "c:\websites" that has subdirectories for each domain you're hosting, like "c:\websites\example1.com\www\public_html" and so on. Most of the time you point IIS to the "public_html" directory, so you only need to change the Windows server security settings on that folder, alowing whatever anonymous IUSR account read access, so that the website is visible to the internet.
Now, if you're like me, you want roundcube hosted on something like "mail.example1.com," so you set a directory path like "c:\websites\mail.example1.com\www\public_html" where you put the roudcube files. You point IIS to the correct "public_html" folder and set the correct security settings, allowing IUSR read access.
I'm not enough of a techie to explain why this is, but here's where the problem lies. Because you only allow IUSR access to the "public_html" folder, when roundcube tries to lookup the relative paths to the temp, logs, and skins fodlers, it doesn't have enough permissions to search from "c:\websites\mail.example1.com\www\..." as you've only given IUSR access to the "public_html" folder. Try this -- give IUSR permissions to read your equivalent "websites" folder in the directory path to your roundcube website, and roundcube should then work for you. I don't recommend doing this for a variety of security reasons, so I simply made a new directory path for my roundcube mail website, something like "c:\webmail\mail.example1.com\www\html" and gave the equivalent "webmail" folder IUSR read permissions.
I hope this is of some help to you and anyone who encounters this error. I apologize for my lack of technical understanding, but I just wanted to offer a solution that worked for me.