We have used Plastic SCM for a few years already and it has evolved a lot. The integration with Visual Studio is pretty good, you have all the graphical views of their visual client inside VS.
The biggest challenge was the switch to the branch per task thing, kind of a best practice to use it. But now when we have to use SVN for a project, we miss our task branches.