I've had just a quick thought, maybe it doesn't like the @ sign or maybe the dots in the email.
my sight uses
$to = "email@site.com";
$re = "Web Site - Contact Request";
$msg = "<p><b>Contact Request</b></p>";
$msg .= "<p><b>Message received from:</b> " . $name . "</p><p><b>" . "Email to Reply:</b> " . $email . "</p><p>";
$msg .= "<b>Regarding:</b><br /> " . $why . "</p><b>Message:</b><br /> " . $comments . "</p>";
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; ";
$headers .= "charset=iso-8859-1\r\n";
$headers .= "From: $email \r\n";
mail($to,$re,$msg,$headers);
Sometimes using . to join stuff behaves better, and I've also got $headers this might encode the @ sign better.