It's hard to write an answer that rules all. But from my experience, booking sites do not charge (or authorize) your card if it's a reservation that is either free or you will pay by alternative means (cash payment at the hotel).
Booking sites ask your card details anyway for two things:
- confirm your identity. To prevent any bad reservations (a competitor can book all rooms in a hotel, and the booking sites have to use the the competitor's hotel. Trust me there are hotels who do this right before the touristy season!).
- in case of a no-show, booking site has to compensate the hotel. This is usually first night's charge but it can vary from zero to the cost of entire reservation.
The truth is that authorizing card details is an expense to the booking site. Besides, failed card charge attempts can hurt the reputation of the merchant (in Card processor perspective). Practically, they just need a valid credit card to make sure the reservation is legit and they have a "last resort" to charge you if it's absolutely necessary.
Now, credit cards are validated using Luhn algorithm. I won't mention the booking site name here, but technically it's even possible to enter a card number that doesn't even work. Be a good lad and don't do this - but I just want to tell you that in most cases, they won't charge you anything. There is a whole PCI compliance policy to protect your card details. It's certainly safe to enter your card details. They are definitely more safe than giving your card to the waitress to charge for your dinner :)