Bitcoin operates on the consensus of the users, not the majority of the miners. Every user running a full node (such as Bitcoin Core) enforces the protocol rules on the entire system. If a forking change were made to the protocol, those users (and miners) that chose to use the new code would essentially be creating an altcoin (which they might want to try and call "bitcoin", but which wouldn't actually be "bitcoin" unless ALL users and miners switched to software running the new protocol). If even one user and one miner continue to run the old protocol, then the original bitcoin rules would still exist on the original bitcoin network.
Not sure if I understand this.
Doesn't the longest chain wins?
Say if there are only a small number of users and miners remaining in the unforked version, shouldn't miners in the forked version generate a winning chain of larger total difficulty?
Longest chain wins when both chains are using the same protocol. This is why reorgs happen when two bitcoin miners find a block within a fraction of a second of each other.
When the protocols are different and incompatible (known as a forking change), then you end up with an altcoin. This is why there isn't a "longest chain wins" situation between bitcoin and any of the other altcoins.
Those running the existing protocol won't even recognize blocks as valid if they come from miners running the new protocol. It won't matter how long the chain is, an invalid block is ignored and tossed out.