I just finished talking to someone who lost 1 1/2 weeks of work due to an inadvertent key stroke. It's not only hard drive failure that may get you. With hardware stability quite high these days, we sometimes feel invincible. It is easy to get complacent and forget that we are fallible. All it takes is some bad luck though, and everything is gone. Source control is your friend. Use it. Check in your changes regularly. If you don't want to commit changes to an active tree, make a working branch and check into that. Checking in regularly also helps if you ever decide that you don't like the changes you just made. If you keep the work locally, you're stuck if you ever decide that invasive refactoring just isn't worth the trouble.
Steve's rule of thumb: Check in at least once a day before you go home. I tend to check in every time I have a clean compile/test cycle.