This is actually not odd at all. The fastest way to accomplish this is to use the global.asa file to tap into the Application_OnStart, Session_OnStart, etc events. I'd recommend creating a table that tracks the active sessions and any important info about them. It sounds like you could get away with just monitoring the sessionId and the user's login. Then during login you check this table to look for the same user already being logged in.
Keep in mind that there will be a (typically) 20 minute lag for users who just let their sessions time out and do not actually click "Log Out" (assuming you have a log out button or similar).
Here is a tutorial that shows similar: http://aspnet101.com/aspnet101/tutorials.aspx?id=16
Good Luck,
Aaron Eden
Webglimmer Internet Solutions
http://www.webglimmer.com/
(866)WEB-GLIM (866-932-4546) x7069
(520)204-1045 (Tucson) x7069
(602)801-2277 (Phoenix) x7069
(888)808-EDEN (3336) (Toll free, direct & fax)
Aaron Eden
Webglimmer Internet Solutions
http://www.webglimmer.com/
(866)WEB-GLIM (866-932-4546) x7069
(520)204-1045 (Tucson) x7069
(602)801-2277 (Phoenix) x7069
(888)808-EDEN (3336) (Toll free, direct & fax)