UI in this case is command line interface - there can be good and bad command line interfaces. A typical example how git blows:
Now, cvs and svn used checkout for well, checking out a remote repository to local directory. Git decided to confuse everyone coming from svn/cvs by reusing that command for something completely different. And worse, even in git it can be used for at least three totally different purposes:
git checkout foo # switch to branch foo
git checkout foo.c # reset foo.c the state of the last commit
git checkout -b foo bar # create a branch foo based on bar
Yes, you get used to such idiosyncrasy, but it still poor UI design.