napa's hit the spot: just dump the timer. I see that you've updated your code with the $chr(36) being halted. Now if someone said something /me gives Epic $5 bucks, it'd be ignored. Why the trouble then?
Just do this based upon your current code:
on *:action:*:#:{
if ($me isin $1-) && (!%fl) {
inc -u10 %fl
describe # $replace($1-,$me,$nick)
}
}
BUT if you really opt for a 2-second delay, you can use the play command like this instead of a timer and worry about expoits:
on *:action:*:#:{
if ($me isin $1-) && (!%fl) {
inc -u10 %fl
write -c $event describe # $replace($1-,$me,$nick)
.play -c # $event 2000
}
}