Please explain to me how they can do that?
They just keep running the code they've been running. It will reject the 'bad' blockchain being produced by 95% of the miners, and accept the 'good' chain being produced by the other 5%.
I thought the merchants only sent and received transactions and had nothing to do with the blockchain unless they were miners themselves?
EDIT: Also my initial argument was that due to how the system is designed it will eventually lead to a really small minority control 100% of miners and when the switch happens it would be 100% of miners not 95%, what then?
Obviously your own non-mining client can tell what is and isn't an actual Bitcoin transaction, that's how you know you've been paid even before a tx gets in a block. The tx has to have a history that leads back to a valid generation, has to be signed correctly etc.
Yes I understand. They check the blockchain.. But how can they tell which blocks in the chain are legitimate? If the small minority of miners changes to new rules unanimously, there wont be a fork and everyone will be forced to use the same longest blockchain now being generated under new rules. So how then does a client reject a transaction that is in the blockchain it uses I ask?