One simple solution that I like:
- You have a row of credit card icons. By default they are in full color.
- These icons react like buttons (hover shows clickability) and act like radio buttons if clicked -- all the others gray out.
- When a user starts typing a credit card number, it selects the appropriate icon if not already selected (graying out the others).
Because they aren't radio buttons (or a dropdown), it doesn't force people through the step, but because they can act like radio buttons (providing only visual feedback), they don't confuse anybody who thought they were supposed to be there.
The forms I've used that feel the most natural do something like this.