This type of charge is becoming more and more common.... and I am sure the hotels see this as a major revenue stream. Especially as flights get in earlier and earlier. If you have to have the room, and ask in advance, do not be surprised if you are asked to pay. But, if you are willing to take your chances, and are OK if the answer is no... then just ask when you get to the hotel. I have never been told no when I ask.... but I have had to wait at times.
For examples, we got into Sydney at roughly 8 am and went directly to the Radisson Blu. I asked if it would be possible to check in early... and was told that our room (which was an upgraded room) would not be available for a few hours. We were invited to wait in the bar area and were given temporary internet codes. We ordered a Diet Coke and relaxed for two hours... the front desk agent came over about 2 hours later and gave us our keys. No charge.
But, the hotel has every right to charge you if you are asking for an early check in or late check out... might not be the best customer service... but they are selling a product... that we want.