In reply to Rob Exile Ward:
Router to router is the way to go. Use a dedicated bit of hardware, like a low end cisco device, that can do an encrypted (SSL/TLS) tunnel between sites. The sub sites would all connect to a central site, where the SQL and file store are located. Local traffic between PC's stays on the local LAN. Any traffic to the file or SQL server is routed over the VPN. Far more reliable than having lots of PC's running VPNs.
If it's shops and you're taking card payments then there are lots of rules about shipping or storing card data (PCI DSS). You don't want to go down that route and have audits etc. So keep any card traffic local and on a physically separate network.
As others have mentioned, look into hosting the file server and/or SQL server with a cloud provider. That should provide you with backups and hardware resilience (I take it that these are important servers), as well as a lower latency connection. If you only use them from 8am - 6pm, it may even work out cheaper than hosting a physical server(s) yourself.
Another option might be to host a local file and/or SQL server at each sub site and keep data in sync using replication. Then if your central site goes down each local site will continue to function. You would only need a VPN to sync data amongst the servers not from multiple PC's.
It's a common problem with many solutions. All of which vary in complexity, price and reliability.