Sure, it could be done automatically, but it would need to be able to know when someone is trying to force it to update.
Oh.. Okay, so they want 8MB because it would take a while to get everyone the updated version.
What if the client already supports 8MB, but there's a limit on the network that only supports, ex 2MB? (I have no idea what I'm talking about)
Any time the current software has a "limit" (meaning that it refuses to accept anything beyond that limit), and new software creates and accepts something that is beyond that limit which affects the state of the blockchain, it is a "hard fork". That is pretty much the definition of a "hard fork". It will always result in those running the new software and those running the old software disagreeing on which blocks exist and which transactions have been confirmed. It will eventually result in those running the new software and those running the old software disagreeing on which transactions are valid.