Well, preferably you should boot your local computer with your own software - you just can't trust public machines to be free of keyloggers and what-not.
As for running stuff remotely - you can simply use ssh, which can also forward the X data, or you can use a Virtual Private Network to accomplish the same thing.
The trick is that your machine needs a globally accessible IP. With many modems and ISPs, it is the DSL modem which will get the global IP - and it will probably be dynamic so you can bet it changes every few hours. To get over the changing, you can use the dyndns service. However, you need a wget script or such to regularly query your modem to discover the global address and publish any changes to dyndns. If the modem forwards ALL ssh traffic originating from the outside world to your computer on the internal network, then you can use ssh to connect. Same with VPN solutions - just route those types of packets to the relevant machine. Careful with the routing rules or you will find that no other internal computer can use ssh to the outside world.