"Really the best answer is probably to get a better operating system..."
As nice as that sounds, there are all number of reasons why this may not be desirable, feasible, or even possible for some people.
Personally, the only time I use Windows is when I'm developing berrybrew. I've got a few VMs configured for that. So realistically, I only use Windows to develop software that I don't even use :)
...that's not entirely accurate. I use my Test::BrewBuild CI automation against Perl instances running under berrybrew on a Windows system that all it does is listen for incoming test run requests. I have a VM set up with Perlbrew as well for the exact same purpose. All of my distributions (the cross-platform ones) are automatically tested against both Windows and Unix over the network, across at least 10 versions of Perl before I do a CPAN release.