Everybody does paircoding. Many people even do n-tuple-coding.
Every line of code written requires maintenance, i.e. review and probably changing, debugging, fixing, rewriting, refactoring. Programming actually consists of maintenance.
So on any piece of code, there are several people working. It might be the same person, just at different moments in time (which basically counts a different person, that often has little or any idea about how the code, it is to maintain, works. at all).
Now the choice you are given is, to either live with the fact, that you have n people, who, due to fundamental laws of physics, CANNOT communicate (unless time travel is invented :P), work on a piece of code. Or you can simply have 2 people, who can communicate, work on it.
Good software is made of 90% thought and 10% code (for one, because code is bad). Pair coding forces people to think and to propose/defend solutions. The code is reviewed as it is written and not 2 years later, just because strange crashes occur "out of nowhere". The code is short and concise, because solutions generally grow towards simplicity, when you invest thinking instead of doing. Of course even pair programming doesn't produce perfect code, but it does produce code, that is orders of magnitude better in probably in any way you may want to measure that. In the long run, it is even less time consuming.
And one great plus of pair coding is, redundancy. For any piece of code, you have two developers, who know it. If one leaves the team, you're not instantly screwed.
Many programmers don't like the idea of pair coding. Mostly, because they are lazy or have other personal issues. The types of people, who will start religious wars about indentation or naming conventions, who can go on arguing about pointless crap all day long, and will provide you with the possibly most stupid arguments you ever heard, to proove why some practices are unneccessary, when they only don't like or understand them.
Except for the few real talents and the even fewer actual geniuses, who really can write great code locked up alone in a cellar, pair coding is the way to go for programmers. It also embeds aspects such as mentoring and competition (and contact with other human beings :D) directly into programming.
greetz
back2dos