Let's take a look at a hard fork first, according to Investopedia it is: "a radical change to the protocol that makes previously invalid blocks/transactions valid (or vice-versa)".
Investopedia continued: "This requires all nodes or users to upgrade to the latest version of the protocol software. Put differently, a hard fork is a permanent divergence from the previous version of the blockchain, and nodes running previous versions will no longer be accepted by the newest version."
That possibly makes things as clear as mud, in its most basic form, a hard fork is a software upgrade that is not backwards compatible with the old software. In other words, everyone has to upgrade to the new system in order to participate. There are currently two basic hard forks people talk about, 'planned' hard forks and 'contentious' hard forks.
A planned hard fork is usually set out in the timeline and is integral to the success of the coin/token and has complete consensus of the company/community. The other type, 'contentious' hard fork, is created due to disagreements within the community/company.
Let's have a look a famous contentious hard fork to dive deeper into how hard forks work:
Bitcoin / Bitcoin Cash hard fork.
There were two different groups within the bitcoin community who had differing opinions on how to make bitcoin better, one wanted to stay with the original software, the other wanted a radical update. So, a contentious hard fork was created.
When a hard fork is created, the original code and blockchain are cloned and run side by side simultaneously although they are different as one has the upgrade and the other doesn't. This requires the group that wanted to stay with the original software to keep on following their protocol and for those who wanted the update to the software, to follow the new path. Hence, bitcoin was maintained, and the new protocol, bitcoin cash, was created.
Say, for example's sake, people decided that Bitcoin Cash was rubbish and it was a silly idea, they could stop validating and transacting on the Bitcoin Cash blockchain. In this scenario, people would stop using Bitcoin Cash and that part of the fork will be left and forgotten and would not affect the bitcoin protocol. Keep in mind, this didn't happen and both are ticking along just fine, this example was just to illustrate that you do not need to maintain both protocols for a hard fork to work.
Recently Monero executed a planned hard fork. This hard fork was to change the software so that miners could not exploit Monero. Their hard fork was successful, people upgraded to the new nodes and the old path will be left and forgotten. The two main reasons for a hard fork is a security software update or to roll back and locate transactions after a major hack (search the DAO hack for more info).
A soft fork is a software upgrade that IS backwards compatible with the older version. This means users who did not upgrade to the new software can still participate, although it does need a majority. It is much easier to implement soft forks than hard forks as you just need to get the word out to the majority of people participating to upgrade and it can be done slowly and surely.
Those who do not upgrade will find their functionality affected and thus will be incentivised to upgrade but they don't have to do it right away. It's just like getting an update notification from your mobile phone, you don't have to upgrade now, but your phone won't recognise the new features until you do.
In an absolute nutshell:
A hard fork is an upgrade to the underlying software that is not backwards compatible with the old software, so it requires everyone who wants to participate to upgrade. A soft fork is a software upgrade that IS backwards compatible and doesn't require everyone to upgrade, but it does need a majority.