Windows does have some sort of smart card support as it lets you authenticate to a WiFi network using a smartcard.

It all depends on what you define as a "smartcard". Some of them are pretty much just a chunk of flash in a credit card whilst others have quite a bit of RAM/ROM and can run small Java apps.

You'll have to buy or find a development kit from the smart card manufacturers which tell you how to write and compile the code that goes into the card itself. Next will be working out how to talk to the driver that handles the reader and then doing auth etc... That's the DIY route anyway. I don't know of any ready built app that does what you want unfortunately. At least none that is aimed at home users. Most of them assume that you're a big enterprise and are willing to license it per user.