Non credo che abbia come valore del campo la stringa "privacy", bensì "privacy" sarà il nome del campo (Request.Form.Key).
Prova così:
FOR numeroCampi = 1 TO (Request.Form.Count() - 1)
IF NOT Request.Form(numeroCampi) = "" AND NOT Request.Form.Key(numeroCampi) = "privacy" THEN
corpoMessaggio = corpoMessaggio & "<table width=100% border=1 cellpadding=4 cellspacing=0>" & "<tr>" &_
"<td width=150 bgcolor=#E3E9F2><font size=2><b>" & Request.Form.Key(numeroCampi) & "</b></font></td>" &_
"<td bgcolor=#F8F8F8><font size=2>"& Trim(Request.Form(numeroCampi)) & "</font></td>" & "</tr>" & "</table>"
END IF
...........
Nello script di Aruba c'è anche un'altra cosa che non mi torna: perché il for termina a Request.Form.Count() - 1? Dovrebbe essere:
For numeroCampi = 1 To Request.Form.Count()
...
Next
altrimenti l'ultimo campo non viene considerato (ok, di solito è il tasto di submit ma non è mica detto!)
Ciao
Matteo