I strongly suggest you creating a forest (let’s say yourdomain.com) and then different child domain like losangeles.yourdomain.com, newyork.yourdomain.com and so on. But my suggestion is to place at least one server per site in order to reduce the traffic for replica and authentication.
Child domains is a great idea. You can also look into Windows 2008 Read-Only domain controllers for your smaller branch offices.
First, I would like to clarify a point. A domain controller can only act as a domain controller for one domain at a time. It is a best practice to have at least two domain controllers per domain. If you are going to have two domains, then following best practices… you will have at a minimum four domain controllers. However, I will challenge the fact that your company would need two domains, and you should do the same. Having two distinct sites whether same or separate locations (regardless if they are well connected or not) should not be the only compelling reasons for having two domain. In my experience in general, political arguments more than technical barriers tend to force companies to deploy multiple domains. Furthermore, well verse technical architect can provide tangible compelling reasons and mitigate the argument. Just remember that simplicity goes long ways. Keep It Simple!