Over lunch the other day, some collegues and I were jawing about different code repositories that we've used, and how clients/projects that we've worked with have evolved to use different VC products. At one point, all six of us had worked together on a big (successful) online wallet system. It was originally on Perforce. We migrated the whole system to Subversion because we were having problems managing code/library dependencies between various projects. Things worked great in Subversion for what we were doing at the time (this was 4 years ago or so). One of the developers I worked with there was on the team for Monotone - a precurser of Mercurial - in that they both followed the distributed versioning system model.
In the last year we made the change from ClearCase to Subversion, and for what we were doing it just felt (and continues to feel) so much better.
A couple of guys that were eating with us at lunch are working with a client that switched from Subversion to Mercurial earlier this year. They said it was a bit of a paradigm shift for all the developers in the organization as you have to think about how you manage your changes a little bit differently. One of the guys also forwarded me this article that is really good at explaining the differences (and has a link to a tutorial the author wrote).