ezmlm will add a user to the list from a mail() call if you use the -f extra flag in the function.
Example:
mail($to,$title,$email,$headers,"[email protected]");
The extra flag being a -t followed by no space and the email address you want the email to appear as though it's being sent from. I spent hours messing with this to try to allow users to sign up for my mailing list by marking a check box while signing up on my site, ezmlm ignored everything until I threw that extra parameter in there.
Hope this helps.