I'll at least say that keylogging will be easier than listening for a spoken word, so you have that on your side, at least.
What I'm not sure of is how sophisticated current keyloggers are, and how you could be sure you were catching every instance.
If you want to find out when someone has typed "sex", it's trivial if they just type s-e-x, but not so much if they type s-w-<backspace>-g-<backspace>-e-x. Or if they copied each letter from some other page and pasted them together, though that is far less likely unless they are intentionally trying to break the safeguards you are setting up.
I'm sure it's not perfect, but have you tried:
http://www.apple.com/macosx/features/parentalcontrols.html
?
If you're already working on Macs, that may be an option.
If there are very specific sites that you want to block, you could probably put them in the hosts file pointing to a google IP or the machines own IP so nothing gets pulled up.
For the notification: Sockets aren't THAT hard, but I would actually recommend having your program invoke a script, etc. that copies a file to one of the checkout machines via AFP or SMB or FTP, and just put another applescript that triggers off of content changes on that folder on the checkout machines. There's less programming to do then. The file could contain the machine's name, the "naughty" word that was typed, etc.
Once you have the notification and keylogging going, the hard part is what words to trigger on. Do you know all of the slang words in russian for sex acts? How about various racial slurs in Tagalog? Have you found somewhere on line that provides a somewhat comprehensive list to try to filter on?
I won't discourage you, but know that this will take some time. Hopefully you can get paid for the time you spend since it is for work, but it doesn't sound like you will. Break the problem down until you feel like you can approach it. I would try:
Capture Keystrokes
Break keystroke stream into words
Analyze words against a blacklist and greylist (you may want some greylisted words, and if more than 2 are present in a series of 10 words, etc. that causes a notification)
When a match is found, send alert to checkout machine.
When a match is found, display a dialog that their activity has been logged and that store personnel have been notified.
When a match is found, if your macs have built in iSights, take a pictures and send that along with the alert.
On receiving system, check for new alerts.
On receiving system, display a notice when alert is found.
I think a lot of this can be done with pretty simple applescript. The only thing you should really need to do in Obj-C. You may even be able to get away with using an existing keylogger and just parsing its output, which would make your task even easier.
-Lee