It's actually against Visa / Mastercard regulations to run credit cards for another business or entity, in this case, the contractor. It's one of the many things you agree to when you first obtain a merchant account.

Legally, it's considered money laundering.

Even if the contractor wasn't in on the scam, if they don't have a way of accepting credit cards, there's a good reason for that. They either had a merchant account and had it closed for a valid reason, or they were not able to pass the credit check. Either way, they aren't supposed to be running credit cards.

When you decide to run a card for somone like this, you are helping them circumvent the system.