They typically do this because they don't have enough warehouse space to keep the packages temporarily, and also because it wouldn't be very Express if it adds another day or two.
But if the value is high or you've landed on their naughty list, they'll have you pay before receiving the package.