Ehhh.... sí. Me suponía que te iba a pasar esto, tenía que haberte avisado. Lo siento.
Bien, vamos a ver.
Los puntos que pongo es por si tú querías incluir alguna acción en el caso de que la variable exista de antemano, es decir, que es la segunda vez que entras en la página. Como supongo que no quieres realizar ninguna acción concreta, símplemente has de quitar ELSE y los puntos y cerrar el condicional: <%END IF%>.
Ahora bien, cuando entras por segunda vez ya no carga el código Javascript de la cabecera ¿no? Pues por eso te da un error, ya que después de la etiqueta BODY abres un SCRIPT y pides la variable "ie". Como no habías cargado el SCRIPT previo, esta variable no existe. Si pruebas con el navagador Netscape verás como en ese caso es la variable "ns" la que da el error.
Entonces, se trata de escribir el condicional de modo que lo que no se muestre es el SCIRPT que crea la etiqueta "precarga".
Vamos allá (lo he rehecho todo un poco).
Código:
<HTML>
<HEAD>
<TITLE>layout</TITLE>
<%
'Comprueba que la variable no existe o está vacía
IF Session("PrimeraVez") = "" THEN
'Le da un valor a la variable, de modo que ya no esté vacía
Session("PrimeraVez") = 1
%>
<STYLE>
#precarga{position:absolute; width:50%; height:50%; top:100; left:200}
</STYLE>
<SCRIPT Language="JavaScript">
ns=document.layers
ie=document.all
function esconde() {
if (ie) precarga.style.visibility="hidden";
if(ns) document.pregarga.visibility="hide";
}
if(ie || ns) document.write('<div id="precarga" align="center"><font color="#FF0000" size="4"><b>C a r g a n d o....</b><br>Por Favor Espere...!!!</font><img src=Fotos/barra2.gif border=1></div>');
</SCRIPT>
</HEAD>
<BODY onLoad="esconde()">
<%ELSE%>
</HEAD>
<BODY>
<%
END IF
Response.Flush
%>
Resto de la página.................
.................
A ver ahora qué tal.