Stopping damage is almost impossible. Look at some of avalanches plugins for info on how to hook tracelines and stop damage that way. But this only can stop damage from guns. Knives and nades are unaffected.
As for applying damage you can use fakemeta's fakedamage, and user_kill etc etc..
Or you can have a look at sawce's ham samwich module which has functions to both stop and create proper damage (not sure how it works.. havn't tried it.)