Not sure how much data you are sharing but you could consider DropBox. Then you can just sync a folder on your local filesystems; and anything you put in that folder will show up on your friend's machine. The free service gives you 2GB of storage. The $10/mo service (which I have and love) gives you 100GB.
Another option is a VPN, one of you can get a VPN router and the other connects. Then it behaves as if you are on the same LAN, and you can use your favorite network filesystem. I'm not very knowledgeable in VPN setup though, and you will have to take some extra steps to still allow use of your own internet connection (see Why does connecting to my work VPN cause my internet to not work? for a Windows solution).
If you're willing to spend money, for $250 there is this Wifi bridge with a 3-mile (!) range. You'd need line-of-sight. You'd still have to take care to separate your internet connections (if you have multiple network interfaces in your computers this part is easy, or you could add USB wifi dongles and have a dedicated wifi network in your houses for it) - I'm sure there's well-established ways to set that up but again, I'm not a big IT guy.
The FTP server setup is another great idea. You wouldn't have the middleman that you have with DropBox and you wouldn't have to pay for the service. Whoever is running the server can use a free dynamic DNS service to give you a consistent host name instead of memorizing an IP. The remote user can mount the FTP server as a drive, the person running the server can share convenient folders.
Another quick hack (giving Windows an example but any network filesystem will do) is to have one person set up a Windows share, use DynDNS or share your IP address with your friend, and open UDP and TCP ports 445 (I think). Then your friend will have access to your shared folders. I can't speak for the security of this.
1
You could set up a VPN. Have either you or your friend purchase a router with built-in VPN support, then the other person can set up a VPN connection to it and it will act as if you are on the same LAN, and is secure. You will have to take extra steps, though, to ensure that you still use your internet connection for outgoing connections rather than tunneling to your friends (see http://superuser.com/questions/313921/why-does-connecting-to-my-work-vpn-cause-my-internet-to-not-work).
– Jason C – 2014-06-21T23:39:42.370If you need to get your question under control, contact the team http://superuser.com/contact and ask to merge your accounts
– random – 2014-06-22T05:12:04.750All of the current below suggestions (except the one with multiple interfaces) still move the data through your internet connection which means A) slow and B) data usage. In order for this to work properly, you will need a separate network (with separate interfaces on each end) It's not simple, and likely your best bet is to just use a USB key which you can walk back and forth. – Aboba – 2014-06-24T15:51:26.177
I lied, I just realized your best bet is actually to: Setup each of your routers with guest access and configure that vlan to have access to the fileshare but not internet, when you want someone's file, just switch to their wifi and download before switching back to your own wifi. – Aboba – 2014-06-24T15:54:56.480