Well first thing to do would be debug the call to mail(), try something like this:
if(!mail($to, $subject, $msg, $headers)) {
die('An error occured sending the e-mail. Please contact the webmaster ASAP.');
}
Then, see if you get that message. I can't think of why one browser would work and one wouldn't in this situation...
EDIT: Found the problem. IE doesn't handle "image" INPUT types like Firefox does. Here's an example of what Firefox POST's when using an 'image' INPUT with a name of 'send'...
Array
(
[test] => hi
[send_x] => 8
[send_y] => 14
[send] => Send Message
)
but here is IE's version of the same form with the same INPUT element...
Array
(
[test] => hi
[send_x] => 14
[send_y] => 19
)
These are the only two browsers I tested - I didn't test others (Safari, Opera, Netscape, etc. etc. etc.). IE is very non-W3C-standard-ish, while Firefox is more so, so maybe you should just code towards Firefox in defiance to M$. For a more browser-friendly approach, try adding a hidden INPUT element, i.e. ...
<input type="hidden" name="submitted" value="yes">
and then use...
if(isset($_POST['submitted'])) {
to verify that the form was sent.