El error está en que tu quieres llamar una funcion php con javascript, y eso no se puede hacer... ya que php trabaja del lado del servidor y javscript del lado del cliente
la sólucion debería ser ésta:
Código PHP:
<?php include_once 'pregunta_spam.php'; ?>
<html>
<head>
<title>[ contactar ]</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="style.css">
<script language="javascript" type="text/javascript">
function valida_imagen(){
if(document.getElementById('imagen').value != <?php echo $_SESSION['spamkey'];?>){
alert("La respuesta es incorrecta");
}
}
</script>
<style type="text/css">
<!--
body {
background-color: #FFFFFF;
margin-bottom: 40px;
margin-left: 0px;
margin-top: 40px;
margin-right: 0px;
}
-->
</style>
</head>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="100%" align="left" valign="top"><form name=form_contacto action="procesa.php" method="post" onSubmit="return valida_imagen(this)">
<table width="440" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="82%" align="left" class="cssnegro" style="padding-top:15px"><?php pregunta_spam(); ?></td>
</tr>
<tr>
<td style="padding-top:15px" align="left" class="cssnegro"><span class="cssnegro" style="padding-top:15px">
<input name="imagen" type="text" id="imagen" size="28" maxlength="60">
<?php echo $_SESSION['spamkey'] ;?></span></td>
</tr>
<tr>
<td style="padding-top:26px" align="left"><input name="contacto" type="submit" value="Enviar" onClick="javascript:valida_imagen();"></td>
</tr>
</table>
</form></td>
</tr>
</table>
</body>
</html>
Saludos