I work on Debian and before Debian I was on Ubuntu. In my previous job, we simply ignored IE6, but at my present job a page must work flawlessly for IE6 onwards. The one wayout for me is to set up a Windows VM but that doesn't help every time. Consider this, if I was a freelance consultant and didn't want to or have enough money to buy licenses for every possible Windows version how could I deliver a web page that worked for IE6/IE7?
Set up a separate machine (not a vm) with Windows - if you use a suitable version you can remote desktop to it. On said machine, install one or more of the images found on http://www.microsoft.com/downloads/en/details.aspx?FamilyID=21eabb90-958f-4b64-b5f1-73d0a413c8ef - there is an XP with IE6.
This will hopefully allow you to test all you need with a minimal investment.
IEs 4 Linux (don't mind the name, works on OSX and BSD too).
It's basically collection of various versions of IE pre-packaged to use WINE. Good enough for quick checks. If you want to do in depth check, like for example how will that behave on IE7 on WinXP, then you do need to set up VM.
BTW. Microsoft has officially killed IE6 and promotes migration to IE8.
I develop a web site on my Mac. When testing IE, I use a virtual machine running Parallels. The only variations I currently test are: IE6, IE7 and IE8 all running under XP. Based upon this, I have not had any real problems slip past. That being said, I use ExtJs which handles most of the browser specific stuff.
I have XP installed on one VM which I then cloned forwards. The XP is legit, but I doubt the clones are. My work has just got a MDSN subscription, so I'm covered now.
If you absolutely must test under multiple O/S versions then I'd suggest a MSDN subscription - they are not that expensive anymore. This includes all O/S installs. If your employer or client (as a freelancer) is demanding this level of testing, then I'd pass the cost on to them.
BTW: Half of our client base still run IE6. I wish we could ignore it, but that's just not feasible.