I'm a C/C++/C# developer and mostly Windows user. Currently I'm working as code monkey in the automation business. And there I am doomed to use MKS as centralized versioning system. Hopefully not for long, as I'm slowly proselytizing my co-workers towards DistributedSCM and Mercurial especially.
While I'm happy with Mercurial, there are some pitfalls under Windows and especially in the working environment I'm using it. I tried to address them with some extensions:
TimestampExtension - saves and restores timestamps for user-defined files (.hgtimestamp) by means of command (hg timestamp) and hooks (preprecommit and postupdate).
CasestopExtension - stops commiting case-folding collisions by means of a precommit hook.
MakewritableExtension - interactively removes read-only flag from accessed files.
I'm using Mercurial for my own open-source projects, too:
Orbiter Multiplayer Project - multiplayer framework for Orbiter spaceflight simulator.
Common Object Installation Client - Addon manager using TortoiseHG as backend.