The most cost-effective solution would be to use the Internet. Using plain old VPN connections or Cisco's DMVPN are both usable alternatives for secure communication over the net.
If you intend to run QoS sensitive apps over this network, some caution will be required. Internet throughput may vary a lot over the day and this will affect in-time delivery of (for example) voice traffic.
Regards,
Leo