Sometimes people get into arguments within a public chat forum. This happens a lot on KGS, a go server, and I imagine it happens on chess servers too. An expert is giving an exhibition game, and an unranked player, or a guest makes disrespectful comments. The only thing that can be done is wait for the admin to deal with it, or attack the person verbally - but since there is nothing you can threaten, that doesn't help. Once a few people like that start talking, the chat is over and reasonable people stop using it.
In real life, this is a much smaller problem, because we can deal with it much better. If someone is being rude at an orchestra concert, or whispering too loud at a play, the crowd has ways to fight back short of calling the police. In a more informal setting, it's easier to show someone they're not wanted.
People can visibly ignore someone, turn their backs, make faces, or exchange knowing glances about the person. Sniff with their nose, or make the crazy gesture. Or, they can physically challenge the person, or slightly menace them with their body position. If there are a lot of people, you can just surround them, or block their way. So lots of situations or conflicts get resolved this way. There are threats available, and also there is more information available to people to know how they are perceived.
But in most forums, there's nothing like this - you can either ignore them, or call the admins. A few forums have implemented a real "ignore" feature that makes their words not display to you. But this is useless compared to the real life version of ignoring. In real life you can still hear the person, but choose not to respond, and everyone around knows it. So you are harming that person, while still retaining the ability to respond if necessary. On forums, ignoring doesn't let anyone else know that you disapprove, and you also lose the ability to respond. In forums, ignoring hurts the ignorer, not the ignoree.
So, there should be more ways to deal with annoying people.
In human society, the range of actions used to be even bigger - you used to be able to challenge someone to a duel! So people really, really had to think about what they were going to say!
This should be possible in chat sites, and for sites which are connected with games, it could be even better - actions in chat could be directly linked to real challenges in the game!
Imagine this situation: a professional player graciously gives an exhibition game. A loudmouth in chat says stuff like "fake pro". The professional sees the comment and issues a system challenge, which would appear for all to see in the channel. The recipient would have to accept it, dispute it's fairness, or shut up. The challenge could be a simple one, or there could be consequences - perhaps losing the right to chat, or receiving a spot on your profile.
It's be like throwing down the gauntlet. So on a go server, you could challenge sb to a game with whatever appropriate level of handicap, or time restriction, or reverse komi, and it would be visible if they accepted or not. Everyone watching in the chat room would know, and there would even be a link to the game. When the game finished, it might even automatically report something to the chat room / other game where the challenge originated, so that people who witnessed the issue could see. If it was another type of server, it could be any type of challenge.
It would also be cool if a user's record showed how often they accepted / ignored challenges, and how often they won. So a weak player who gets challenged a lot for saying disrespectful stuff would have to defend himself.
Challenges could be direct, or with handicap. Obviously if a 5d challenged a 10k nobody would blame the 10k for losing an even game. It would also be possible to offer negative komi - +100 points for black to start, otherwise even.
In life if there is a group of people talking, as everyone is listening, they all are giving off signals on how they view the speaker. These are through their eyes, body position, glances, attention etc. This should happen online, too. There are many signals someone gives that the chat window could pick up and send to the server - and the server would take them and share it. For example:
Some simple visual effects could be applied to the words typed by the speaker, changing over time & with their reputation, to show how much they are being listened to. In addition, it's possible to tell who people are replying to, and have that contribute to the server's idea of what the speaker is like.
The only non-admin related feature most chats have is an "ignore" button. yet, they barely use it to it's fullest extent. When someone does it, it should be a public action - and show up in the channel the person is talking on. That would make being ignored a real danger, and people would have to be careful about it.
This could be extended to ignore lists - if there's a person who is ignored at a really high rate, it would be great to be able to know that and just default ignore them.