The word ALWAYS is offensive. It is not a word that should be used by anyone, including Blacks. The same goes for other racial slurs. The word carries a history of hatred, oppression, and despair...its not a word to really use casually.
I will admit however that I have used the word before, but its usually only used as an insult and in anger. Technically, I really shouldn't use it and I know that...but sometimes I like to distinguish between the decent Blacks and the ones that purposely try to enforce the negative stereotypes of our race. It makes me feel better to say, "I'm a proud Black woman...and that is a n*gger!" lol. But its still wrong nonetheless...I should not discriminate against my fellow Black people like that regardless of what they may be doing to keep the Black community down. They need help, not contempt!
But I digress...when Blacks use the term, it tends to be just that. You have to realize that "n*gger" was not originally an insult. In fact, it was the actual term for the Black race since slavery so Blacks and Whites called Black people that word freely (Black people calling each other "n*gger" is NOT a recent invention). The reason it became an insult is because it is a slave-term. Its a term of enslavement, of inferiority, and of being subhuman. So even when we're using it casually and in a friendly way, it still has a degrading sort of tone to it. Its like if you call someone "It"; its a term of inferiority. And if they call themselves "It" too, then they are accepting themselves as inferior. So by using "n*gger", Blacks are unconsciously accepting themselves as inferior...and that's why no one should use it because we would only be further enforcing that inferior mentality. I believe in the evolution of words...but I don't think that word or any other racial slur could really change to mean something positive.
Does that make sense? Its hard to explain because there's a vast and deep psychology behind racism and the Black experience. But all you need to know is that if you aren't Black, most Blacks will take it offensively if you call them that word even if you're just playing around. If you want to use that word jokingly, be sure you KNOW the person you're talking to and know their temperament. I have a friend who apparently doesn't think that "n*gger" refers to Black people at all if you don't take it that way, so his friends can jokingly call him that and he calls them racial slurs too. BUUUUUT...I am not like that. I can take a little joking if the word is not really in reference to me, but if you directly call me "n*gger", I will get kinda offended.
But if a Black person calls you any racial slur, you are free to use it, k? 'Cause I know if I go up to a White person and say, "You dumb cracker" or go to a Mexican and call them a beano (is that the slur for Mexicans?), then I would really expect to get called a n*gger for that. Ignorance begets ignorance and if I behave in an ignorant way, I can only expect to get ignorance back.
And for future reference: NO ONE has forgotten the history of that word or the history of racism. The Civil Rights movement was only about 40 or 50 years ago...that was not a long time ago. When you think of how long it takes evolution to take place, this sort of inferior mentality that is prevalent in the Black community is really not all that surprising.
EDIT: You don't really understand how human language works...do you? Just because its slang doesn't mean its not offensive and demeaning. It doesn't mean that it does not hold those meanings. Slang simply means that it is not standard language, it doesn't mean that its not vulgar. And trust me, I can tell you from my own experience that MANY people of all races still use "n*gger" in that way.
Please go do research and take a few classes; educate yourself about the world around you.