SVN used to be really bad with this, creating a .svn folder in every directory. However, that's been changed for a while now (since 1.7, I believe) and now it only creates one .svn file at the top level of your repository and sticks all of its junk in there. Git only has one .git folder at the top level as well. No idea about Mercurial (thanks for writing the name so I can copy 'n' paste it!), I've never tried it. I know in Git you can also make a .gitignore file if you want and put files or extensions you want Git to ignore. I believe SVN stores that in its .svn folder so you only get the one item.
I've installed multiple different source control tools before (and apparently still have TortoiseSVN and TortoiseCVS installed), but they puked over my projects' neatly organized folders with special files and junk