"iswm" checks for a wildcard string, e.g. "*fugg*". Use "isin" instead. And, there is no need to set all that %n %c %t variables:
on *@:text:*:#:{
if (-badword- isin $strip($1-)) {
if ($nick isreg $chan) {
ban -u120 $chan $address($nick,2)
kick $chan $nick BadWord ...detected tempban for 2mins
}
}
}