Janinlondon, it might help to think in terms of consequences rather than punishment. Don't like the word 'punishment' myself, there's something of Wackford Squeers about it. Whereas a consequence arises naturally from the child's choice to behave in a particular way.
In our house messing about at bedtime would get the warning, "If you don't get into your pyjamas quickly, there won't be time for a bedtime story" or conversely, "If you get ready for bed quickly we might have time for two chapters of Matilda." Messing around when we need to do something means, eg. there won't be time for (insert treat of your choice here). I have very occasionally (I think once for each child) let them go to school without breakfast -- not as a punishment, but simply because they refused to come when called at breakfast time, and by the time they came down, breakfast was over. They got the message pretty quickly.
The other thing I was told by a older, wiser mother, when my dd1 was tiny was never to threaten with, "I'll do x", but to make it impersonal. So instead of , "If you do X again, I'll take your playstation away" you say, "If you do that again, your playstation will have to go away." It sound like a minor difference, but makes it seem as if the consequence arises from the laws of nature rather than from action that you are choosing to take. It makes it less likely that you will end up in a pointless slanging match like the mother on Supernanny.
I kind of agree about the naughty step. I do use it occasionally to remove a child from a particular situation -- generally ostentatious bad behaviour at the table, or deliberate nastiness to someone else. The message is: "We don't want to be with you if you behave like that." The special room thing, and counting the no. of minutes as practised on Supernanny, little Angels etc. seems a bit forced for me. And I'm not organised enough for star charts.