A few ideas:
1. Don't let her relay through your server
You could reconfigure the problem user to use a different outgoing SMTP server (eg
Google).
2. Turn on spamassassin for local smtp connections
(caveat: I have no idea if this will have any effect)
The only difference between local and remote qpsmtpd that looks significant to me is the instruction to disable spamassassin on local connections.
Here's some code that will enable spamassassin in qpsmtpd for "local" connections using the same settings in place for remote connections :
mkdir -p /etc/e-smith/templates-custom/var/service/qpsmtpd/config/peers/local
cd /etc/e-smith/templates-custom/var/service/qpsmtpd/config/peers/local
cp /etc/e-smith/templates/var/service/qpsmtpd/config/peers/0/70spamassassin .
signal-event email-update
If this causes undesirable side-effects, you can un-do this with:
'rm' /etc/e-smith/templates-custom/var/service/qpsmtpd/config/peers/local/70spamassassin
signal-event email-update
3. Be a hard ass
Change her password and refuse to tell her the new one until her computers have been disinfected...
4. Check your SMTP relay settings
I have not seen a spambot infection that knows how to authenticate with a mail server. Usually you can defeat these by requiring authentication for all email relay. Is there any situation in which your SME allows relay without direct SMTP authentication (pop-before-smtp, local connections, or anything else)? If not, has the bot "snooped" the user's authentication? The last option is that the bot is inserting spam directly into the user's email client -- which implies an outdated, infected, and/or insecure email client...
When you say "She users her userid/password", are you saying that she is authenticating via IMAPs and SMTPs, or are you saying that she is using a VPN connection?
If she is using a VPN then you probably have un-authenticated relay enabled for local networks on your SME -- if so, turn it off...