put a debugging echo at the top of your handler, to see whether it really "isn't working", or whether it's just not matching your if() statement.

Your timer is unsetting the variable you so carefully created. If you want to delete the token you just addtok'ened, you should use $!deltok in the timer to keep it from being evaluated at launch time. What you're actually doing is making %fd.warned go away completely after 120 seconds.

Code:
.timer 1 120 set -e %fd.warned $!deltok(%fd.warned,$nick,32)