I'd suggest secondary domain controllers at the secondary sites. A server at each site can help to reduce backbone traffic by compartmentalizing functions within a site. The term "Secondary" is interesting, because one of the smaller sites might be "Home Office" who wants to be the home for the central control - or not.
Triangle connection is great for redundancy and fall-back, and normally the routers will recognize the shorter route, listing the "long way" as second best. With that architecture, do you want internet access from each site? It depends on the bandwidth requirements of the employees, but multiple access routes improves reliability if designed properly: a single-point failure won't create a company-wide outage. With servers on each site, you could have proxy service in each server to the internet.
Think about putting your web servers, topologically, in their "own little world" - a DMZ. As netwrk_admn said, (hint: firewall. hint2: multiple IP addresses and service binding). It's a harsh, cruel world out there.
Oh, is the phone system going to be IP also? That's another thing to consider during the planning phase when considering system load and bandwidth requirements.
Gee, it's fun to spend somebody else's money...
:-)