Grammar does not have rules.
It has habits.
What we perceive as rules are simply derived from the way majority of the language's speakers, or at least some influential sources such as TV, movies, newspapers, magazines, spell-check in word processing programs (major influence on my shifting from 'colour' to 'color'... see, even now the first word is underlined in red! ) are speaking at the time.
With particular reference to English, that explains how there are exceptions in our languages for every "rule".
With regards to teaching grammar, I think what makes it so difficult is this inherent hypocrisy : the language doesn't seem to follow its own rules. It's because there were no rules in the first place : syllabus planners observed the contemporary practices and formed patterns from there, and then wrote them down in our textbooks as rules. I see this craze among veteran language teachers to keep inventing new models, formulas, tricks etc to set everything straight; newer and newer books keep coming out to explain it in better and novel new ways... they're just barking up the wrong tree.
We'd be much better off if we simply gave up all pretenses of order, and told the learners frankly that it's spoken/written this way because that's how the majority or at least the influential sources seem to like it. Maybe tomorrow people might start doing it differently, and then, voila! The rules, no, the HABITS of the language will have changed.
If you want the language to do a particular thing differently, then get a large number of people, or the influential people, to speak/write it your way and you will have CHANGED the grammar of the day. Yep, that's empowering to hear. And involving. And way more realistic.
And digressing a bit.. guess what other sectors ought to redefine their rules into habits? http://www.youtube.com/watch?v=JKHUaNAxsTg