I don't have a "bad word" filter (except for the word "ebay" because somebody kept posting links to his ebay actions), but I check on these things:
- is a name given (empty names or the default name is not accepted)
- is a shout given (empty shout or the default shout is not accepted)
- is name different from shout (if equal it's not accepted)
- is it a unique message (2x the same message (name + shout) is not accepted)
On top of this I have:
-a IP block for users that keep violating the rules
-from the same IP-address I only allow 2 messages in a row. Before a 3th post from that address is accepted, another user with a different IP has to post.
- a filter that removes HTML and PHP tags (actualy everthing between < and >

from the name and shout
And lastly I and the moderator check the shoutbox on a regular basis and remove unwanted messages.
My shoutbox is MySQL based, so no files.
Please do not PM, IM or email me for support (they will go unread/ignored). Use the forum for support.