The solution that have come up with uses two network protocols Webdav. I have used WebDav used for the external network access as it design to work over HTTP & HTTPS. While you can use SMB over the internet the performance can be slow over a link that has a high latency which most home internet connection likely have.
WebDav can run over HTTPS so that information accessed over the internet is enycpted.
I've used Unison is a file-synchronization to sync the Files
All of this is running on ubuntu Linux using the Apache WebServer.
A few points to notice before you start
You may need to check what your ISP terms are and id you are allowed to run a web server on your connection also you need to check your up load speed as if you want to stream movies you'll need at least 256 KB
You also need to understand that when ever you allow access to a computer on your network from the internet you are opening it up to attack to protect remember to choose secure passwords.
Step 1: What You Need
A copy of Ubuntu Server 10.4 ready to install
An active network internet connection