I have encountered similar things in IIS before, what happens (I think) is that IIS has utilities to check syntax errors or compatibility issues within files that it views as executable. Regardless why it does it, the server will parse this file. Because it effectively renders a page, your mailing functions (or any other functions for that matter) will fire. IIS won't generate a log entry because it isn't a "true" request, it is just the server performing some sort of maintenance or run-through.
I am not 100% sure why IIS does this, whether it is a syntax thing or not, but I know that I have had a few pages generate database content with no record of logs or any other user tracking.
Here is a configuration link that might be helpful: MSDN Custom Error Pages