VNC is FOSS and very multi-platform (it has mac support, I haven't heard complaints) and is what I use in many cases. There's a few variants which are all interoptable. Which networks they're on doesn't matter as it's all running over IP; but if they're behind a router you need to set them up on a static NAT IP and do port forwarding through their router - or have them connect back to your machine in VNC's server-connects-to-client mode (in which case you forward your routers' port 5500/TCP to one of your local machines).
In some cases I've seen delays and disconnects on some router/computer combinations but I think that that may be a windows networking stack bug in v4 of RealVNC. Possibly other variants such as TightVNC/UltraVNC don't have this problem.
-C