You are at spawn, 2 sec later a new guy spawns on your team,you've never seen him before. He starts attacking you unprovoked. After 3 swings with his giant axe he crushes your shield, and then he kills you with 2 swings. The admin should:
Tell the guy not to teamkill in pink text and kick him. If he comes back on and continues teamkilling: ban.
Two things jump out at me in the above scenario:
1) You've never seen him before.
And
2) He's wielding a giant axe.
1) Suggests it might be a new player unfamiliar with the rules or possibly confused.
But!
2) Suggests he's been playing long enough that he should know.
I'm against instantly perma banning the guy. You never know what exactly happened. For example:
I've had a (rare) graphics bug (due to ati crossfire) where some random textures in the game did not load. Usually a few walls or other objects, sometimes the sky texture or some textures on players, like hair or a weapon and on a few occasions the banner above a teammate!
So i spawned and i see my teammates but ONE teammate has no banner above his head and for some reason he has no hair or helmet. I alt-entered twice and voilà: the banner appears above that teammate.
I could imagine the axe wielding teamkiller spawned in late, suffered from the rare graphics bug where that one teammate did not have a banner above his head, didn't realize it was a teammate and thus killed him even though he didn't fight back.
If the guy then immediately apologized in chat, explained that for some reason the banner wasn't visible and he thought him to be an enemy... well then an instant perma ban would be wrong, wouldn't it?
So admins should talk first and be careful with their assumptions. Getting unjustly banned can ruin the game for you. I would hate it if that would happen. And with all the bans we do, it's quite possible.
Therefore, it is my opinion that admins should always warn first, kick next and ban only if we're very sure it's on purpose.