"Offense" vs. "offence", which is more correct? If both are correct, are there any differences in shades of meaning and/or usage?
There is no difference in meaning between offence and offense. They're exactly the same in all their definitions. The difference is that offense is the preferred spelling in American English, while offence is preferred in British, Indian, Canadian, and Australian English.
These American publications use offense:
The veteran tight end never found a home in Mike Martz’s offense and was inactive for all but five games. [Chicago Sun-Times]
If people take offense at hackneyed phrases it’s because they’re hackneyed . . . [The Atlantic]
And these non-American publications use offence:
Both offences can exploit some areas that play to their strengths. [CBC]
Parents who fail to keep air guns away from their children will be fined up to £1,000 under a new offence from next month. [Telegraph]
Pulpit choice gives offence [Sydney Morning Herald]
There is a difference between "offense" and "offence" in the context of sports. In the United States, "offense" generally means engaging an opposing team with the objective of scoring points or goals. In the same context in Britain and elsewhere, the term "offence" is usually taken to mean an infraction of the rules - i.e., a penalty or foul - and "attack" is more likely to be used where Americans would use "offense".
Offense is simply the American spelling of the word offence. Offence is the British spelling. They both mean the same thing. This is just one example of the difference in spelling words that end in "ence", in American English. You can learn about all of the words that involve this difference on the internet. For example, these pages have good explanations of it: http://www.tysto.com/articles05/q1/20050324uk-us.shtml and http://www.studyenglishtoday.net/british-american-spelling.html
There is a difference in usage. Offense is written by people who speak American English and by people that are writing mainly or only for an audience who speak American English. When writing mainly or only for an audience who do not speak American English, writing offense will not be necessary and will not be appropriate.
If you need to decide on which spelling to use, base your decision on your audience (who will be reading your writing).
Words change with time. Originally the British word was "offence", and Americans slowly took the word "offense". They both meant the same thing. We stress the last syllable when referring to breaking a rule, whereas we stress the first syllable when we speak about the opposite of defence. The fact that the last syllable is stressed when we speak about the opposite of offence is probably why people want to spell it like the common word "fence", whereas people are now using the term "offense" when they stress the first syllable. It's not always been that way. But languages are not defined by their histories, they're defined by the people who use them. Historical linguistics does not determine how people use a language currently.
If you meant that something is offensive then the spelling is offense. If you mean that you are mounting an opposition then it is offence.
For instance, "I found his remarks concerning the president were a real offense". Or they "were offensive". "The ad company mounted a huge campaign to position the offence against their opponents."