There are so many, because it was hard to do it right from the first time. I remember those days, when we used CVS - it sooo sucked... And SVN which came later, was not much better. Working with that on a larger project was a real pain (especially when branching and merging). Fortunately, some smart people created Mercurial and the world has been saved. ;)
I actually watched Linus' google talk on git :) I never actually tried git, but nonetheless I loved his talk :)
This is my favorite Linus quote from it:
"For the first 10 years of kernel maintenance, we literally used tarballs and patches, which is a much superior source control management system than CVS is, but I did end up using CVS for 7 years at a commercial company [Transmeta[9]] and I hate it with a passion. When I say I hate CVS with a passion, I have to also say that if there are any SVN (Subversion) users in the audience, you might want to leave. Because my hatred of CVS has meant that I see Subversion as being the most pointless project ever started. The slogan of Subversion for a while was "CVS done right", or something like that, and if you start with that kind of slogan, there's nowhere you can go. There is no way to do CVS right."[10]