Fai un bel copia e incolla...
Se impari a fare i debug, non avrai più problemi...
codice:
<% 
	dim  messaggio
'### Primo errore:
'###	dim  email="pincopallino@email.it"
'### Le variabili non possono essere inizializzate in questo modo.

	const  email = "pincopallino@email.it"

	function  valida(mail)
		'Posizione del carattere "@" 
		dim  posAt
		posAt=0

		'Posizione del carattere "." 
		dim  posPunto
		posPunto=0

		'Array contenente Nome e  Dominio.Estensione
 		dim  arAppo
		arAppo=split (mail,"@")
'Debug Nome
Response.Write "Nome" & arAppo(0) & "
"
'Debug Dominio.Estensione 
Response.Write "Nome" & arAppo(1) & "
"

		'Quantità del carattere "@" 
		dim  qtAt
		qtAt = ubound (arAppo)
'Debug quantità del carattere "@" 
Response.Write "qtAt: " & qtAt & "
"

		 if  (qtAt = 1) then 
			posAt = InStr (mail,"@")
'Debug posizione del carattere "@" 
Response.Write "posAt: " & posAt & "
"

			posPunto = inStr (posAt + 2,mail,".",0)
'Debug posizione del carattere "." 
Response.Write "posPunto: " & posPunto & "
"

			if  (posPunto <> 0) then 

'###		Ecco il tuo secondo (e più grave) errore: 
'###			if(posPunto+2+posAt<len(mail)) then 
'###		Perchè mai sommi la posizione del punto, alla posizione dell'AT, alla lunghezza dell'estensione(2 se ".it" altrimenti 3 se ".com")? 
'###		Ti basta sommare la posizione del punto alla lunghezza dell'estensione 

				if  ((posPunto + 2) <= len(mail) ) then
 					valida = true
					messaggio = "OK! Posizione punto corretta" & "
"
				else 
					valida = false
					messaggio = "KO! Posizione punto errata" & "
"
				end if 
			else 
				valida = false
				messaggio = "KO! Posizione punto errata" & "
"
			end if 
		else 
			valida = false 
			messaggio = "KO! Quantità '@' errata" & "
"
		end if 
	 end function 

	if  (valida(email) <> True ) then  
		Response.Write("errore.asp?messaggio=" & messaggio)
	else 
		Response.Write("errore.asp?messaggio=" & messaggio)
	end if 
%>