When I think of all the good things the CVS offers I remember all the problems I've had in the past. Not once I was in a situation when doing some modifications to an existing application when users spotted a bug or asked for an urgent change on some of the forms. Since I was in the middle of editing major program modules it was not easy to compile a release version of the application. I would fix one thing and break three others in that case. That was a price to pay.
CVS would spare me the trouble and I would not think twice in that case. Simple checkout to another folder; fix the stuff that needs to be fixed, compile exe, commit changes back to server. The version where I was remodelling major parts of the application could simply be a branch on which I could work when I had the time. After finishing work, merge the branch back to HEAD section and voila.
Yes, CVS is very useful, even when there is only one or two programmers on the project.
And I should mention that we used Source Safe at the time but the whole process of Tagging/Branching is not so obvious there, so we never used it.