Indeed. Look at register_message, or even register_event. But with Bailopan's register_message you can (though its not much tested, but really the little I have tried does indeed work, if anything is wrong, just report it so we can fix it) detect a message and just pass it on untouched, block it completely or edit the parameters and then pass it along.
Also I made a metamod plugin awhile back that just registers all messages sent to clients and logs those, including the values of each argument of each message sent, you can find "jghgtrace" here:
http://www.tcwonline.org/~johnnygothisgun/