Here's my unglorius version. I'd frown on making the alias the same name as the function it calls =D

Code:
k {
  var %default_reason = kick
  var %chan = $iif($me ison $1,$1,$active)
  var %nick = $iif($me ison $1,$2,$1)
  var %reason = $iif($me ison $1,$iif($3,$3-,%default_reason),$iif($2,$2-,%default_reason))
  if (($me ison $1) && ($2)) || (($me ison $active) && ($1)) { kick %chan %nick %reason | eenforce 4 manual kick %chan %nick $+($chr(40),%reason,$chr(41)) }
  else { error Syntax: /k [#channel] <nick> [reason] }
}


I could optimize it a lot more... but I'm a lazy, lazy man. And if it ain't broke, don't fix it