You're speaking of human rights, but the right not to be offended or discomfited is not a human right. It is not a fundamental right, which is why it shouldn't be in legislature.
On what basis do you determine what human rights are, both fundamental and ordinary? Indeed, what is the difference between them? Is it ok to violate a non-fundamental right?
This is another thing that I have issue with - 'official' doctrine is that human rights are universal and indivisible. This means that they apply to all, and all such rights are equal - that one cannot rank or prioritise human rights.
I'm not sure which one I'd put on top of the pile, but it would one of freedom from torture or right to private and family life.
The best way is through education, and it's a slow change that doesn't see immediate results like a law would give.
I don't necessarily think that it's the best way, but I certainly agree that it is a good way. How, though, do you mandate this program of education? And when you educate someone, you are generally imposing a view on them, and thereby restricting their freedom of speech (I'll come back to this one).
One issue I have real problems coming to an answer on is the teaching of creationism in schools. On the one hand, I think the theory of evolution best describes the mechanism by which we came to be. On the other, I'm aware that I place far more value on certain ideas and modes of thinking than other people might. By only teaching one, I am imposing my world view on others. I think that it should be taught because a person should be free to make up their own mind. If, once exposed to the differeing viewpoints they decide to embrace creationism, then it is their choice to make. I don't think I have a right to impose my views on others.
I know that this runs counter to my general approach to wanting to ban hate speech, but to paraphrase the Shaft theme-song... he's a complicated man and no-one understands him... Mystic!
Education as a restriction on freedom of speech is a particularly tricky one. We teach our children to be tolerant. In doing so, we are denying them the chance to be intolerant. In our societies, tolerance is regarded as a virtue. It hasn't always been the case, and it may not always be so. Especially if people like Sarkozy get their way.
Racial, ethnic, political, economic, and social divides will always inspire a certain degree of discomfort. Sure, we've come a long way since back in the day when we as a species gladly embraced these prejudices, but it wasn't law that made this progress, it was recognition that this prejudice exists.
If, as you say, that law isn't what changed these, why have laws about discrimination or harassment at all? Why not just leave it all to development and society?
I think, though, that this exchange has been useful in that my viewpoint is changing.