That's a good explanation. But what happens if 51% of hashpower want bigger blocks but Core Developers refuse?
The way I see it - oversimplified without a doubt:
The miners are employees. You pay them mining rewards and transaction fees to run the system
the way you want it to be run. ("Please, tidy up the kitchen, will you? Ah, good, here's money for your good service. Thanks.")
The day they start having different objectives and incentives, what happens is
"Please, tidy up the kitchen, will you?" (Abide by my rules and I'll take your blocks for good.)
"No, I'm going to do the bedroom. The kitches is a remnant from an era when people used to cook for themselves. Now it's catering all over. Bedroom." (I make the rules, I'm the miner.)
"I won't pay you for the bedroom." (I won't accept your blocks as valid.)
"Do bedroom. Do bedroom." (Fork.)