Just wanted to 'ditto' Dennis about Perforce - I can't believe how useful having atomic checkins is. Changelist #s and ability to sync the entire system or a subset of it to a particular change # at any point rules. No idea how I lived without it. I wish perforce was a superset of CVS functionality (e.g. we need a Perl script to tell what files aren't presently checked in), but making up for a few perforce shortcomings with a script or two (emacs script is presently needed to view file annotated w/ changelist #s) is far better than sticking w/ CVS.
I know bitkeeper was considered when the Perforce choice was made, I have no idea what the reasoning of the decision was, though.