The chat module needs a way to alter outgoing chat messages, or suppress them entirely. This is necessary for any of the more advanced obscenity filtering techniques.
An adviser is probably the best option for this sort of alteration. For memory management, the simplest solution is to pass the message in a maximum-size buffer. There may be a better option, though.
Priorities and ordering of advisers may be an issue down the road, but it's better to get something that works for now and worry about problems when they occur.