I've not been hit with an early departure fee. However, I can understand why they do that. Think about it from their perspective:
Customer A books a room for 3 nights. Customer B calls about a room for night 3, but is told the hotel has no availability. After night 2, Customer A decides to check out early. The room is now vacant, but the hotel is unable to fill the room for the night, losing out on that revenue.
It's much like the fee for a no-show. Since they held the room for you all night, they missed out on the revenue from filling it, and as such, you get dinged for the previously agreed upon fee.