There are many factors that can be used in determining domain controller placement, but the most important one is from the user’s perspective…logon times. If you have a remote site, with a slow link, everything from DNS resolution to authentication & authroization traffic will be going across the pipe. An AD domain controller (for both 2000 & 2003) requires DNS to be running on the DC. Local DNS resolution on a local DC greatly reduces the amount of traffic that goes across a site link. Combined with local authentication & authorization traffic on a local DC, this makes a drastic increase of available bandwidth on the site link for the users. For a single class C subnet with <254 users, with bandwidth less than or equal to a half or full T1, I would suggest placing a local DC at the site and configure an AD file replication schedule based on the link performance.
Another factor that really is independent of bandwidth, may be just to have distributed global catalog servers in AD. Having more than one DC be a global catalog server is beneficial for disaster recovery purposes.