I can only second the recommendation. Skype + Screen & vim over ssh is a great way to collaborate in a distributed environment. We are all working from home since 2005 and it worked pretty well so far.
All my employees work from home and when we need to get together to bang on something, we use a shared desktop over VNC. Getting the appropriate responsiveness and speed out of VNC is a matter of using the right client; plain-vanilla standard VNC and UltraVNC is pretty slow, but TightVNC is quite acceptable. I haven't had any problems with NAT traversal on it either, although we run OpenVPN internally and every person's work machine is on it, so the routing is directly over the tunnel to a server reachable only through the VPN concentrator.
My favourite thing about VNC is that it really scales fairly well even to a large number of remote viewers, and doesn't incur licensing costs per marginal head. We are also VoIP guys, so of course we run Asterisk internally and all have pretty decent handsets or softphones that are just one three-digit extension away from each other. Push a few buttons and we can all hop on an internal conference bridge and on our shared VNC - it gets things done.
Still, sometimes it's too much overhead just to perform a simple task and screen does quite well.
We used SSH + screen + vim/emacs for a ton of code reviews and collaborative work at Linden Lab during Second Life development. Even with Second Life + voice in constant use for distributed standups and design discussions -- and SubEthaEdit in use for some text sharing -- SSH + screen + vim was invaluable.
I've used GoTo Meeting and also setup custom VNC servers to do the same thing with skype for voice or IM chat along with it. VNC works pretty seamlessly in mac and ubuntu.
As someone who has never really done pair programming but is kind of interested in maybe someday giving it a try, why is this the case? My impression was that the purpose was more to have a mind focused on solving problems at the same time as another mind is focused on finding issues with the proposed solutions, possible bugs, etc?
Why do you need physical presence for this to work?
Because it's much easier to communicate directly than by using computer : you don't have the same workflow, for instance, and in my opinion, when you're not in the same room, you partner is passive.
Is there a way to bypass that or do I have to install screen in my home directory? I'd like to limit the amount of crap I have to install in ~/. They hardly allow any space on these campus machines.
That may have been necessary to get multi-user screen to work with two different users, but you shouldn't have to do that to make it work with two instances of the same user.
Depending on your distro and how screen is packaged, it might just work out of the box.
for the comparison to be fair it is important to mention that with iChat screen sharing you also get voice chat, and when there is to work on web applications it is pretty cool to be able to also share the browser window.
We remote pair all the time with Skype, VNC, then whatever editor the typist is most comfortable in (in our company always emacs). It works really well long as no one is having a bad net connection day.