I'm currently a Mercurial user and I really like it. But it has one downside: if a revision tree is really branchy, it gets slow. A lot of that comes down to some of the design choices that were made, and in particular the fact that changes are always recorded with respect to the last change committed (rather than the parent change). But I'd still pick it over anything else.
For me now, a version control system has two sine qua non features: (1) the concept of changesets, so atomic changes stay atomic; and (2) easy branch merging without loss of information. Essentially all DVCSes have this; most other VCSes don't. (Perforce comes close, but it always bugs me that a branch merge does not preserve the sequence of changesets, and comments, from the branch.)
But if I'm in an interview and a potential employer tells me they use CVS, I will walk out of the interview. (Actually, this is a question I usually ask at the phone-interview level. You can tell a lot about a company by which version control system they use.)