
This is a code-dump of an r_alias.c that does frame interpolation, together with a few implementation notes on changes required elsewhere to support it. I was going to do a tutorial, but the changes throughout the code are quite extensive, and most of them are just one or two lines, so it's easier for all of us to just give the full code and let you attack it with your favourite diff tool.
You should be pretty much able to just "drop-n-go" this into a standard ID software Quake codebase.
It doesn't do anything fancy like attempting to fix up muzzleflashes, and doesn't cover movement/orientation interpolation; the old interpolation tutorial can be used for that quite effectively (just move the changes from R_RotateForEntity to CL_RelinkEntities).