para saber si lo esta haciendo bien, tal vez deberías "enseñar" el valor de $HTTP_ACCEPT_LANGUAGE a ver si es correcto y tienes otro idioma que no sea "es" definido en el navegador..
o también podrias quitar momentaneamente la opcion por defecto a ver cual escoge..
El codigo que te puse lo he usado en alguno de mis proyectos y siempre me ha funcionado bien..
Para que te coja "es" por defecto si lang= es decir, si viene vacio, tal vez podrias comprobar
Código PHP:
isset($_GET['lang']) && $_GET['lang'] != ''
aunque quizás deberias limitar un poco mas esta comprobacion por motivos de seguridad