It's impossible to get it right though because you need to decide what the user wants to see localised vs always in their home locale. Maybe another header that you could set per site like "Accept-Content-Locale" or something.
And of course, both the Accept-Language and GeoIP methods fail miserably at determining things like the user's time zone. There really should be a "home" and "roaming" locale system in browsers that sends the preferred language, time zone, localised content preference, and anything else that could be useful in generically customising content. The user could set the locale browser wide or per site.