If you don't mind a short delay between "reaching quota" and "stopping mail", then you could run a cron job that maintains an smtpd access map for users that reach the limit. This way, you don't have to send non-delivery status notifications and you also don't have to discard any email.
Basic procedure: Parse du(1) output, create a temporary table and rename it into place when the job completes without error. Wietse