... so from what i understand ...
yes, from a high point of view it's not hard to understand. a softfork introduces tighter rules, which make some commands that are now always true not always true in the future. that's why it's backwards compatible, because older clients will still accept the newer stuff. a hardfork truly changes a rule, which makes it no longer backwards compatible and there will be instances of a test for a rule, which is true right now will no longer be true with BU.