"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:
Code:
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
    }
  }
}