Microsoft lets anyone download any version of Visual Studio, for example Visual Studio 2008 (aka Visual Studio 9) is available on microsoft.com. However you'll also need sp1 and you'll need a license.
Instead you can get the free express version. This installs: Microsoft Visual C++ 2008 Express Edition with Service Pack 1.
It includes a 32bit compiler tool-set and a lightweight development environment. It asks you to visit Microsoft update to download the latest service packs and security updates.
It asks you to register this product within 30 days. It says "click register product on the help menu" to receive a free registration key. This just requires a free login.live.com account. It generates a key for you.
The 2010 express version is available on visualstudio.com. This installs: Visual C++ 2010 Express - English.
After install it asks you to run windows update, which will find some vs2010 updates. I had to run it a second time after reboot to get vs2010sp1.
You must register it within 30 days. To do this go to Help > Register Product > Obtain a registration key online > sign in with your login.live credential > confirm your personal info > copy/paste the key into the vs2010 window.
If you try to use the above to compile an old project you'll may get the following error: Cannot open include file: 'afxwin.h'
microsoft.com says: You'll never get that for free with any Express edition. … run to the store and cough up the money.
codeproject.com esplains how to compile MFC code in Visual C++ Express. It seems like it's a bit of a hack. I haven't tried it.
cnet.com had a download for vs2010-professional and says: Microsoft's Visual Studio 2010 Professional costs $799, but you can try it free for 30 days.