I don't see how your first problem could be fixed. If everyone is using the sme-print-dummy-user account, then how could the backend know who is currently using that account?
Quote from the CUPS documentation:
"Every filter accepts exactly 6 or 7 command-line arguments:
printer job user title copies options [filename]
* printer - The name of the printer queue (normally this is the name of the program being run)
* job - The numeric job ID for the job being printed
* user - The string from the originating-user-name attribute
* title - The string from the job-name attribute
* copies - The numeric value from the number-copies attribute
* options - String representations of the job template attributes, separated by spaces. Boolean attributes are provided as "name" for true values and "noname" for false values. All other attributes are provided as "name=value" for single-valued attributes and "name=value1,value2,...,valueN" for set attributes
* filename - The request file
The filename argument is only provided to the first filter in the chain; all filters must be prepared to read the print file from the standard input if the filename argument is omitted."
If everyone is using the same account, the user argument would be the same every time, so it would be useless for your purposes.
If your XP users get authenticated by samba, the user argument will be set to the samba user, and you could use that for your email addresses. The following thread, which unfortunately doesn't have the details, shows that XP users do not need a Unix account on the SME Server for that:
http://forums.contribs.org/index.php?topic=19406.0Alternatively, you might be able to use a trick with one of the other arguments passed to the pdf backend, namely the title argument. If you look in the page_log for cups and you see sensible job-names (i.e. not crap like "smbprt.xxx"), you might be able to hide the email address there. I.e. name file "user@domain.tld", send it to pdf-printer, make pdf backend send mail to $3.
Regarding your second problem, I found the following script by googling:
#!/bin/bash
#
# Script: sendfile
#
# Purpose: Send the specified file via email as a MIME
# attachment to the specified address.
#
# Author: Anthony E. Greene <agreene pobox com>
#
# License: GPL <http://www.gnu.org/>
#
# Note: This script does not include any error checking, so
# it should only be called from within other scripts.
# The correct syntax for using this script is:
#
# sendfile.sh user domain filename | /path/to/sendmail -oi -t
#
# First we set up some global variables.
# Some code should be added to verify the commandline arguments.
sender=me myisp domain
recipient=$1
filename=$2
basefile=/bin/basename $filename
echo From: $sender
echo To: $recipient
echo Subject: File $basefile
echo MIME-Version: 1.0
echo "Content-Type: multipart/mixed; Boundary=\"sendfile-attachment-boundary\""
echo
echo --sendfile-attachment-boundary
echo 'Content-Type: text/plain; charset=us-ascii'
echo
echo This is a MIME encoded message. If your mail software
echo cannot properly handle the attached file, you may need
echo to get a MIME-aware mailer.
echo
echo --sendfile-attachment-boundary
echo "Content-Type: application/octet-stream; name=\"$basefile\""
echo Content-Transfer-Encoding: base64
echo "Content-Disposition: attachment; filename=\"$basefile\""
echo
/usr/bin/mimencode $filename
echo --sendfile-attachment-boundary--
Note that it uses the mimencode command, which is provided by the metamail package.
P.S. I'm interested in your current pdf-by-email solution. Could you send it to me by email? My email address is in the docs for e-smith-cups.