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.