con $var = $_POST['a']; crei una variabile che si chiama var .... che non è la stessa cosa di $a, e in oltre la devi mettere in $body per fartela arrivare nel messaggio.

prova così:

Codice PHP:
$oggi date("j F Y G:i");
$sito "http://www.miosito.it";
$ip "$_SERVER[REMOTE_ADDR]";
$browser "$_SERVER[HTTP_USER_AGENT]";
$to "hekate88@libero.it";
$soggetto "Modulo da $sito";


if(
trim($_POST['nome']) == "" OR trim($_POST['email']) == "" OR trim($_POST['messaggio']) == ""OR trim($_POST['a']) == "" ) {
echo 
"<font color=\"#FF0000\" face=\"verdana\" size=\"2\">[b]Tutti i campi sono obbligatori[/b]</font>";

} else {

$body  "Modulo inviato il $oggi da $ip - $browser \n\n";
$body .= "Nome: $_POST[nome] \nEmail: $_POST[email] \n";
$body .= "Oggetto: $_POST[a]\n";
$body .= "Messaggio: $_POST[messaggio]";

mail("$to","$soggetto""$body");