Configuring sites is of course a good start. However you should still be aware that you cannot "force" the usage of a specific DC using Sites and Services. This is by design. For example, if the DC in your site is down, Windows should try a DC in another site.
If you have a topology with a main location (such as HQ or datacenter) and remote "spoke" sites with DC's that only need to perform local authentication and other DC functions, the remote DC's can be configured to not advertise certain services by using the DnsAvoidRegisterRecords registry setting.
Also note that you can influence preference order by using the Priority and Weight of the SRV DNS records in the _msdcs subdomain, but that should only be done after a thorough analysis. Clients attempt to contact the server with the lowest priority. Weight is a load-balancing mechanism that is used when selecting a target host from those that have the same priority. Clients randomly choose SRV records that specify target hosts to be contacted, with probability proportional to the weight.
More information:
How to optimize the location of a domain controller or global catalog that resides outside of a client's site
http://support.microsoft.com/kb/306602
SRV Resource Records
http://technet.microsoft.com/en-us/library/cc961719.aspx