The code you had was logicialy flawed, becuase you always had to have a $2 anyway sd * means there must be a $2

Code:
on *:TEXT:sd*:#:{
  if ($me == $botname) {
    if ($1 == sd) { describe $chan *Slowly kills $iif($len($2-),$2-,$nick) $+ !* }
  }
}


* match to sd* so SD on its own works or SD <something> works
* make sure the first word was SD becuase it catches SDBLAHhetc as well.
* in the $iif check the lenth of $2- rather than what it is since a few values well produce false conditions
* reinserted $nick where u put $3 for some reason