This is my advice:
1) Dont use hubs, use Switches, they are faster and a damn site more efficient (network traffic wise) than hubs are
2) Your IP addressing.
I would use a class C subnet mask (255.255.255.0) This can accomadate 254 network nodes.
if you have 3 sites as i believe you have said then you would setup the following (as an example)
Site 1 Address Range 192.168.50.0/255.255.255.0
Site 2 Address Range 192.168.51.0/255.255.255.0
Site 3 Address Range 192.168.52.0/255.255.255.0
then via a router or server role on an existing server, you would have VPN connections to each site. that way node 192.168.50.85 at site 1 can communicate with server 192.168.51.2 at site 2
3) if its a server that is going to be accessed from the Internet, then it should do web serving applications only like mail server or web server.
4) a server can be used for more than one application. you dont need a seperate server for each application you are running
5) File and print services work very happily on the same server
6) Place your web serving server at the head site
7) File server at each site, preferrably in a cluster, that way each site has a quick response time and your VPN channels are not hogged by files and printer requests!
8) security, make sure its secure