Workstations will use any available DC *in their local site* to authenticate. If none are available they will then start looking elsewhere.
Therefore, if you have AD configured as a single site, Site A and Site B will randomly authenticate each other, which will also add to your bandwidth overhead (although not by a huge amount, compared with roaming profiles).
If you configure AD into two sites, as mentioned above, then machines will *prefer* to authenticate locally. They will still use the other site automatically, if the closest site is down.
Also, if you configure two sites in AD, you can try using site based GPO's (that is, a GPO linked to the site, rather than to an OU). I have never had a use for them myself, so I can't comment too much on what can and can't be done with them, but I do know they are available.
Another option is to create an environment variable on each PC (through the SYSTEM object in Control Panel, or however else you want), and set its value to the name of the prefered server. Then in the user profile tab for the users, you can set the Home Drive to \\%MyLocalServer%\%UserName% (or whatever).
The problem with this method is making sure that all PC's get the env var. If one doesn't have it set at all, you will see all sorts of errors when users try to login.
Also, it doesn't help with laptops. They will still have the env var set to one site or the other. You don't mention if laptops are an issue, but even if they aren't now, it is something you should consider for the future.
One possibility is to combine the two options, and use the site based GPO's to configure an env var on the PC's and then use that env var in the user profile configuration.
Just some idle thoughts. Hope it is of some use.
Aaron.