Thom,
Maybe an IO board that hooks up to parallel/serial/usb or something.
Assuming that you can get access to the board they should be easy to support. I am guessing that one that works with serial is probably eastest to get working.
This is another one of thos things that I would like to have a play with but still sits too low on the priority list

Take a look at
http://wiki.linuxmce.org/index.php/GSD_to_drive_a_Weeder_I/O_WTDIO-M for an example of interfacing with one.
One you have one running as an interface device then the doorbell (switch) should be able to easily generate an Event. What you then do with that Event is up to you.
HTH
Darren