My personal opinion:
A hard fork may be required for technical reasons, like the move from the Scrypt to the Neoascrypt algorithm as @Wrapper mentioned above.
In that case the dev team set the fork time to a block number several month in the future and will announce the new version as mandatory update and clearly announce, that the new version will be incompatible with the old one and everybody will have to change to the new version. The block number, where the technical change will click in will be announced at the same time.
Users then have the time to update their wallets.
If users refuse to update their wallet as wrapper mentioned above, there will be a hard fork, but typically the ‘old’ version of the wallet and the corresponding block chain dies within some weeks.
A hard fork to create a new coin is useless in my opinion. It doesn’t help the original coin and it would be more efficient and easier to maintain for the forking developers, if they create a new genesis block for their ‘forked’ chain and start from scratch.
I’m totally against this type of hard fork, even if we technically can’t hinder people doing it, as the software is public domain, and I also believe, that the forked coin has less chance to survive than a new coin.
‘Feathercoin Classic’, the thing wrapper mentioned above, didn’t make it even for 6 month.