That's how bitcoin consensus should work, right? Meaning non-mining nodes should be forced into accepting what the hash rate majority(miners) want or desire?
Do we even have a case where nodes force miners into accepting their desired changes?
No, this is not how things work. Bitcoin as a system consists of all groups and each have a say in this decentralized currency's future. Nodes, miners, businesses, investors, etc. One group can't really force other groups into something they don't want.
The best example in 2017 where the hard fork step in SegWit2x proposal had a huge support from miners but only had minimal support from everyone else. Consequently it failed.
Unfortunately vague statements trying to bend reality.
Consensus means mining consensus.
Bitcoin is PoW not PoS.
The one an only time that users have had an strong effect on changes against mining, was the falsely named segwit.
In the end the miners agreed to go ahead with it due to the fact that core was trying to push it anyway without consensus.
This is a documented fact in the way segwit was planned to happen.
I'd also imagine that at the same time, core may not have gone ahead with it without the miner's agreement since it could have lead to a fork and core being on a very low security tiny side of that fork, fortunately that didn't get tested and mining agreed to accept segwit.
As for soft forks and backward compatibility, alas that is a misunderstanding and a false claim.
It is sometimes the case that those who stay on the pre soft-fork software, can be accepting of invalid transactions.
Basically a soft fork means: screw the miners if they don't update, but the blocks will 'usually' be valid on the longest chain - as proven in July 2015