I'm sure something like Asterisk could do what you want and there seems to be some info on running it on Windows using the information here.

EDIT: Does your average winmodem support caller ID these days?

EDIT: Could this plan also not backfire if someone important rings from a phone that they don't usually call from?