I don't know if this is possible with ViewCVS, but I know it's possible with WebSVN, though that would require you to convert from CVS to SVN.
Here's an link text from my WebSVN of a diff. It's probably also possible for you to write an extension to ViewCVS yourself if ViewCVS doesn't have a way to do it, using enscript highlighting
EDTI: This is supported in ViewCVS, and it seems that you could probably do this by extending your post-commit hook script (I'm assuming that's how you doing notification emails).
The format seems to be:
http://yoursite/cgi-bin/viewvc.cgi/path/to/change/name_of_changed_file?view=diff&r1=insert_head_num_here&r2=insert_head_num_minus_one_here&diff_format=h
For example, from gentoo's viewcvs repository.
http://sources.gentoo.org/cgi-bin/viewvc.cgi/path-sandbox/trunk/COPYING?view=diff&r1=363&r2=8&diff_format=h
Since the URL to the diff has a given format, you should be able to process the information from each commit into a series of links, each link pointing to a diff for a changed file.
Hope that's helpful