tmsimont explains on this URL (http://api.drupal.org/api/function/drupal_mail#comment-3243) that
the $from parameter will only alter the
From header, not the Sender, Errors-to
or Return-Path.
of the drupal_mail function that is used by contact_mail_page_submit.
with more details (code from the drupal_mail() function)
line 3 - $default_from = variable_get('site_mail', ini_get('sendmail_from'));
line 9 - 'from' => isset($from) ? $from : $default_from,
line 23 - if ($default_from) {
line 24 - // To prevent e-mail from looking like spam, the addresses in the Sender and
line 25 - // Return-Path headers should have a domain authorized to use the originating
line 26 - // SMTP server. Errors-To is redundant, but shouldn't hurt.
line 27 - $headers['From'] = $headers['Sender'] = $headers['Return-Path'] = $headers['Errors-To'] = $default_from;
line 28 - }
line 29 - if ($from) {
line 30 - $headers['From'] = $from;
line 31 - }
line 32 - $message['headers'] = $headers;
So to solve your problem you could implement hook_mail function (http://drupal.org/node/358855#comment-2079266)
More resources can be found here:
1 - http://drupal.org/node/656472
2 - http://drupal.org/node/861562
3 - http://www.nmglc.co.uk/content/overriding-drupals-mail-function