An interesting question.
A softfork is a change to the bitcoin protocol where in only previously valid blocks/transactions are made invalid.
A hardfork is a change to the bitcoin protocol that makes previously invalid blocks/transactions valid, and therefore requires all users to upgrade.
https://en.bitcoin.it/wiki/