I've been working for myself for over four years now, which has primarily entailed: writing, training, and software development. What I am a bit embarrassed to admit is that, through all those years of solo software development, I not once used a version control system. My technique for source code control was a rather crude one: I'd periodically backup the entire project to some separate directory on the harddrive, and periodically move those to CDs. That was my process.
While this approach worked well enough and helped guard against total loss of data, it did not provide even close to the amount of features and power a decent version control system would, which include a complete history of changes between code check-ins/check-outs, branches, tools to diff current versions with older versions, the ability to roll back the code to particular checkpoints with the click of a mouse (rather than digging through old CDs).
The four years of no version control ended a few weeks ago, when I finally downloaded and installed SourceGear's Vault. If you work on projects as a solo developer, there's absolutely no reason why you shouldn't go get Vault today - it's 100% free for a single-user license, easy to setup, configure, and get using, and uses Microsoft SQL Server (or MSDE) as its backend.
To get started with Vault, first you'll need to head over to the SourceGear Vault Downloads page and download the Server version. (At the time of this writing, Vault is at version 2.0.6, and the Server download is 15.2 MB.) There's a link there to download a Demo Serial Number, but if you are going to be using this as a single user, you don't need to bother with that - Vault works out of the box for single users with no need to license or demo keys.
Once you have downloaded Vault, begin the installation process. In the setup you'll be prompted to choose what features to install - go ahead and install everything: the Server, the Client, and the Admin Tool. Once you have everything installed, getting Vault to integrate with Visual Studio .NET is a breeze. Simply start the Vault Client, go to the Tools menu, select Options, and then check the “Make Vault your default SCC provider” checkbox. Once you do that, open up a Visual Studio .NET Solution. From VS.NET, go to the Tools menu and choose Options, and select the Source Control folder. Since you are a solo developer, go ahead and choose the Independent Developer option. The final step is to right-click on your VS.NET Solution and choose the “Add Solution to Source Control” option. Here you will be prompted to select what repository to add the project to. (You can add new repositories through the Vault Client).
Once you have Vault setup and have checked out, modified, and checked in some files, you can start to see the utility of a version control system. For example, through the Vault Client you can inspect the changes made to the file over different check-ins/check-outs, and roll back the file to an older version, if needed.
Eric Sink, the founder of SourceGear, has some good blog entries on the core logical entities of any version control system: Files, Folders, Repositories, Working Folders, and so on. A great place to learn more about the concepts is at Eric's Source Control HOWTO articles. So, in short, if you work on solo software projects, you owe it to yourself to get Vault today. It's free, takes only a few minutes to download / install / setup, and can potentially save you hours of work.
On a tangent, does anyone want to wager how long it will be before tools like Vault are just a built-in part of the operating system's file system? That is, anytime any file is changed, an old version is saved to some database, thereby giving a user the ability to easily say, “Restore file X as it was on December 14, 2003, 11:35 am.” With hard drive capacities showing no end in sight, it seems like this would be feasible in the near future, if not today.
For a potential implementation, refer to Santry, Feeley, and Hutchinson's paper titled: Elephant: The File System That Never Forgets (PDF) (written in 1999). I read this paper back in my graduate studies, and, IIRC, the Elephant file system allows a user to indicate how to save files, the options being: keep one (only saves the latest copy); keep all (saves every copy); keep landmark. Keep landmark was interesting, it assumed that the longer a file had gone without being accessed, the less likely the user cared about differences between two close versions of the file. So, if there was a flurry of modifications to a file marked as keep landmarks, and then the file wasn't modified for weeks, the file system would assume it was safe to delete some of those saved versions of the modifications of that file.