
Según yo no puedes asignar nada a la variable de servidor referer, su valor es tomado de una acción causada en el cliente, lo que me llama la atención es que dices que si es IE no tiene referer, tendríamos que ver cómo y de donde llega ese request.
Ahora, una cosa que se me ocurre toda vez que estás evaluando que sea IE y demás es que crees una variable de sesión con un valor cualquiera tanto para el request que llega de un navegador cualquiera y tiene referer como para IE, de esa manera podrías evaluarla más adelante y hacer lo que tengas que hacer.
Saludos