Once I read somewhere years ago, but stayed in my mind .... an online article (not on an Indian site) .... Great Myths in History..... Do you know which myth was given no. 1 position????? gandhiji gave independence to India. I still remember, the author quoted that India would have got independence years ago if it has resorted to other means to attain independence. It also stated that though Gandhi's non-violence principle was a powerful weapon, it's the equal effort of Indian National Army, which made British think to quit India. I am no one to give my opinion here, as I know a little about freedom struggle movement.
My answer would be.... it depends on the seriousness of the matter. In some cases, non-violence really works...... But in the other, we need to use weapons.... It depends on the strength on each other. In some cases intelligence wins, while in others strength. There is one proverb in malayalam which literally means.... If the ox is getting ready to kick you, telling mantras or vedas wont give you the result. So..if things are getting wrong, non-violence wont work and our enemy should never think we are weak.....