One of the first things you need to do if you’re going to do pair programming is to get a good physical workspace. I don’t know about you, but I’m not very effective if I have a crick in my neck or I can’t even see the code my pair partner is typing. I know the original XP guys say to use a single keyboard and mouse, but my experience has been much better with a second monitor, keyboard, and mouse plugged into the shared workstation. At any time both members of the pair can see the code and either can quickly take over the “driving.” Do observe a little bit of etiquette with each other to avoid wrestling over who’s typing and moving the mouse at any time.
To pull it off, you really want a place where both of you can sit shoulder to shoulder without being cramped. In my current office space in Austin I have a pretty nice desk with drawers on either side, but it’s terrible for pairing (we have to trade seats to switch the guy at the keyboard and that sucks). When we move to a new (larger) space, I’m insisting on getting plain tables instead of desks. Take advantage of the new world of notebook computers and wireless connectivity to just pick up and go somewhere else to find a better physical setup. Always let the rest of the team know where you’re going and keep an instant messenger tool up if you do go off into the cafeteria though.
I would also say to have a whiteboard or notepad of some kind nearby so you can sketch things out together. Noted methodologist Alistair Cockburn has famously described two people talking at a whiteboard to be the most efficient means of communicating ideas. On a project last year we had 3 or 4 whiteboards on rollers that could be moved anywhere. I promise you that we got far more bang for the buck from the couple hundred dollars we spent on the whiteboards than a typical team will get from a series of Rational Rose licenses.