The best product I found for this is something called NeoRouter. They have a completely free version and it works on a wide variety of platforms including directly onto a router running DD-WRT or Tomato. You just install the server part onto one system and the client on the other computers you want to connect to create a private mesh network. It has a portable version and even a HTML5 interface you can use to RDP into your remote computers if you can't run any application. The server is the only part that needs a port open. The free version is adequate for most regular users I think. If I remember right you can have up 256 clients with the free one. You just lose a few options like packet filtering and ACL controls. It was really easy to set up and if your servers IP is dynamic it has a built in Dynamic DNS service. Plus it loads pre-windows login so even if you have to reboot you can RDP right back in.
If you want it to use it to join computers to a work domain it is a little tougher since it uses its own nonstandard DNS but it can be done. If anyone needs to know how to save themselves the trial & error I had to go through, just let me know.