If you are going to set up a test server, and the eventual target is going to be Linux, it makes no sense at all to use a Windows test server. And even less sense to use IIS when the eventual target is Apache. If you must run your test server on Windows, at least go WAMP.
I think you are wrong that this is commonly done - except in the case of small sites created by individuals. In most cases, they are already Windows-dependent, and would have to go to the additional expense of an additional computer to run Linux.
If you have a dedicated test server, set it up as close to your target environment as possible. Identical, if you can. Same OS, same OS version, same hardware.
Additional productivity gains can be had by using a Linux desktop as well. I know it's a tough sell, and can be difficult in an office setting, because the office most likely already has a Windows computer at each desk, along with Windows email, word processing, scheduling, etc. etc. etc.
So, going Linux desktop requires an additional computer (and probably monitor) for each developer. It becomes easier the more the office has switched over to web-based services, and perhaps in some cases the Windows machine can be dispensed-with.
For a one-person project, you can combine the desktop and test server. You may still require a second machine, if you are entrenched in Windows tools. But do yourself a favor, and learn the Linux equivalents. There's a learning curve, but you will be happier - especially about how much easier it is to interact with your server(s).
A Linux desktop does require similar firepower to a Windows desktop. In particular, if you want, say, Beryl eye-candy, it will require a similar kind of video card as Vista. (I use a low-end, and now slightly obsolete Nvidia 6800). But in most cases, an old machine will do for a test server - particularly if you will be hosting on a shared machine or VPS.