Within the last few months, I've set up firewalls for different locations using LinkSys firewall + VPN products. The reason I went with LinkSys was cost; buying upgrades for our current SonicWalls + adding a remote SonicWall w/VPN would have cost over a thousand dollars. In contrast, LinkSys BEFSX41's are $80 per device. I've worked with SonicWalls, and while I agree that they are a superior vendor with a very good product, keep in mind that in a couple of years, we're going to see VPN over SSL (SonicWall's on that bandwagon). It's something to think about.
So I'm going to make an assumption, and just in case it's wrong, I'm going to try to discuss how you'd do it briefly. My assumption is that you have a "main office" with a "main network", and each branch office will "log in" or "participate" in the "main network", as if they were onsite, and each branch has an Internet connection running on 10/100BT (Ethernet). Furthermore, collections of machines at each location are in the same "subnet" (Remote Office 1: 192.168.x.x, Office2: 192.168.x.x, 10.x.x.x, etc). It's not necessary for every subnet to be the same, just every machine behind a particular tunnel endpoint, if it's going to communicate through the tunnel. I'm ignoring server / domain / OS for now.
BEFSX41 (2 tunnels PER device - $80)
BEFVP41 (70 tunnels PER device - $97-$125)
-- A real plug for hardware vs. software VPNs is that the performance hit for multiple highly encrypted tunnels just doesn't seem to be a factor here.
If you have more than two external offices (or will in the near future), you'd get a BEFVP41 at the main office. You probably wouldn't need VP41's remotely, but you could do this if you wanted setup consistency (device setup is slightly different).
Assuming you get two, you'll need two machines, some cables, and a hub (if you want to look at WAN traffic). Connect a machine each to one LAN port on each router. Consider one on the "main" network, and the other on the "remote" network. Strap the router WAN ports together (through a hub if you want to clip a third machine in to monitor WAN traffic -- Ethereal (.com) is a freeware protocol analyzer), then configure each machine's IP address as you would normally do. On both machines, set up a repeating PING (PING -t OtherMachineIP) - they'll timeout at first, but they'll help you see that your tunnel is alive. You'll have to assign addresses to the routers (use fake ones, and the router as its own gateway, e.g., 10.0.0.1 and 10.0.0.2 since there isn't a real Internet connection) and set up your tunnel. If you read the setup screens carefully, you won't have any trouble getting a tunnel working. Once set up, you'll have to apply everything as it will be for production.
Finally, I have experience with this and am happy to help if you go this route. Some parting notes: If you have to put a LinkSys behind another firewall, you'll need to open port 500 (forwarding/masquerading) from the external firewall to the LinkSys. If you are authenticating with servers over the tunnel, and are using Windows 2000 or greater, you'll have to force Kerberos to use TCP instead of UDP, or allow fragmented UDP. You'll have to enable WAN requests for debugging. I suggest using Perfect Forward Secrecy, and setting up "out of band" (i.e., dialup) remote control software somewhere so you can configure the router remotely. You'll also need to ensure that during final setup, you have a ROUTE BACK from the main office - if you monitor the WAN traffic, you'll see that the ping goes out, and all the way into the LAN, but it never comes back; you'll have to configure a route back to the remote network, on the default gateway for all machines, via the LinkSys gateway. Additionally, depending on the way IP addresses are obtained, you may have to get assistance from your ISP to get your new routers an IP address the first time (not complicated, but everyone's hardware has difference requirements). Enable the firewall logs. If you only see VPN traffic going one way
(" main >> remote"
and not both
(" main >> remote"
" main << remote"
you've likely got a routing problem. If you see "Set up ESP tunnel SUCCESS" in blue, well, record how it worked the first time, then fiddle with tightening it up and see how it goes. Some changes will tear the tunnel down (it does a warm restart), and occasionally, you just might want to power-cycle the router yourself.
I've tried to keep it simple, but touch the main points. I hope your head isn't spinning. Good luck.