Why was Segwit a soft fork?

I’m curious as to how the segwit update managed to propagate slowly and avoid being a hard hork without securing 50% of the hashing power.