I've been using RealVNC as well for quite some time. It's great. Recently I decided to give
UltraVNC a try. So far, it's working without any bugs. It's compatible with RealVNC, but if you are running UltraVNC on both ends of the connection, you can do some additional things like file transfer, chat and a video driver to increase speed and decrease CPU usage. I haven't tested out the file transfer or some of the other additional features though, because I haven't gotten to use it with a client that's also running it yet. Just thought I'd throw it out there for consideration though.
To get the port forwarding working through their router, just forward TCP port 5900 through to their workstation and you're done.
Alternatively, you can forward TCP port 5500 through your router and run the vnc listening viewer. Then have them add you as a client and you're connected without having to touch their router/firewall (although you still have to get them to type your hostname or ip address correctly).