You are asking a question that annoys me as well. Most server applications for email require a local user, imap, pop3, etc...there are also issues with multiple domains like you said. Let's say you have 2 domains on your box:
foo.com
bar.com
Let's say you have two Jim's at these domains:
jim@foo.com
jim@bar.com
how do you make that work? well, you can setup virtuser to send all mail for
jim@bar.com to a different user on the box other than jim, let's say jimhanson. but that is dumb and hard to manage especially if you have thousands of users. you need to develop a mail system that uses an authentication store outside of linux, like ldap. I know exim is a great MTA with awesome LDAP support.
I know that dmail (or is it tmail) has decent LDAP support (its a local mailer like procmail).