While it's a great concept and I'm sure there will be a successful implementation, I think you are off on the wrong foot. The purpose of the private key is so that you transfer control of the bitcoins, not the bitcoins themselves. I don't think that is what you want.
What you want is a way to send your coins from a wallet that may or may not be contained in the card.
Here are some simple possibilities:
If the wallet is on the card, then the card could have a chip that accepts a payment address,an amount, and a PIN through a terminal and then sends the coins to that address via the terminal.
If the card only gives access to your wallet, then the wallet could be stored on some service that would accept your PIN, a security token from the card, an address, and an amount, and then send the amount to the address. One benefit of this method is that if the receiver trusts your service, then there would be no need to wait for confirmation.