You might consider iChat screen sharing. iChat also allows file transfer. I think this is secure, but I am not positive.
You might consider TeamViewer.com (free for personal use). Allows secure file transfer
You might consider secure LogMeIn.com (free for screen sharing, but you pay for the ability to transfer files).
You might consider an Apple MobileMe subscription and the Back-to-My-Mac feature. Allows file sharing as well as screen sharing. All secure.
You might try a Hamachi VPN setup (free if you only connect a limited number of computers). Will allow secure screen sharing and file transfer.
If you want to go the route of getting through your router, then PortForward.com has documents providing step-by-step guides on how to setup port forwarding for a huge list of routers
<http://portforward.com/>
You only have to worry about port 5900 on the destination Mac(s).
However, if you have multiple systems you wish to connect with, then you will have to arrange setup mapping so that the router is doing some renumbering along the way:
Internet Public port 5900 to Mac A port 5900
Internet Public port 5901 to Mac B port 5900
Internet Public port 5902 to Mac C port 5900
etc...
Then when you want to connect to Mac B you have to specify vnc://router.address:5901 and Mac C would be vnc://router.address:5902, etc...
Next is keeping track of your router's IP address. The workaround for this is to get a free dynamic DNS name from No-IP.com or DynDNS.org, and run an updating client on one of your home Macs.
And since you are doing screen sharing over the internet, then on your client, when Screen Sharing is the current application, change the preferences to encrypt all network traffic.
If you also want to hand roll your own file sharing, you will need to port forward to each Mac's port 548. However, rolling your own file sharing this way is NOT secure. If you want secure file sharing via port forwarding, then you want to look into ssh tunnels (even more stuff to setup š ).
Message was edited by: BobHarris