Debes leer la cabecera pública HTTP_ACCEPT_LANGUAGE que te devuelve el cliente.
Esta cabecera puede estar vacía, contener un valor, o contener más de un valor.
Con ColdFusion se trata como lista, y con PHP se trata como array. No sé como será el caso en ASP
Experimenta un poco y ya nos contarás.
Ten en cuenta, además, que se pueden definir varios idiomas y que es posible que el primero no te sirva y el segundo sí, así que no te quedes sólo con el primero como hacen en algunas webs.
ADVERTENCIA: No confundir el IDIOMA del visitante con su país de origen. A veces hay quien se basa en el país de la conexión del visitante para "saber" su idioma. Pero eso está totalmente desaconsejado.
Una cosa es el país donde estás en un momento concreto, y otra cosa es la lengua que hables.