For the actual work environment, virtual machines are perfect. I have my IDE, Database and application servers on VM's so that part of the problem is basically solved.
I also use disk images of the main OS, so I can reinstall in a matter of ...well, under an hour anyway.
But there is still stuff that isn't in the image - application generated content like meta-data (favourites, number of times played, image tags in separate libraries), save-games, app settings, chat histories, bookmarks, cookies, DRM keys and more. After each reinstall, no matter how I try to prepare, there are a few D'oh!'s.
So what is your favorite tip, hack or tool to handle such things?