Ich glaube, sowas nennt man Fallunterscheidung.
Auf jeden Fall mußt du am Anfang des scripts
prüfen, ob die varable $lang bereits gesetzt wurde(dadurch, daß der user eine sprache ausgewählt hat).
Ist die variable nicht gesetzt, mußt du wie gehabt die browsersprache ermitteln lassen, falls nicht, kannste das umgehen und einfach die gesetzte variable verwenden.
D.h.:
if $lang=="" then browsercheck