However, when an email comes into the document library, it seems is uploaded by the domain user which is using the sender's email address, so why in some environment the workflow is not started automatically? I am not sure about the exact reason, below is my guess.
Workflow is actually running under the process "SharePoint Timer". So the service account of "SharePoint Timer" is the real "system account". And incoming email file is actually uploaded by the web application service account. So we need to make sure these two accounts are different.
(If you don't agree, please let me know.)
Below are the relevant screen shots.
Update (16/05/2011): The problem may caused by a SharePoint "bug". In terms of this post, we need to run the command below to fix it.
stsadm -o setproperty -pn declarativeworkflowautostartonemailenabled -pv true