It took a bit of searching and mixing of answers for me to get this. In fact, I came across some really bad ideas for exception handling in the search. I think this is approximately the safest way to catch the user pressing Control-C but not messing with any of the other exceptions. Of course, you might mix in some other things before exiting (like closing open files and sockets), but basically:
import sys
OriginalExceptHook = sys.excepthook
def NewExceptHook(type, value, traceback):
if type == KeyboardInterrupt:
exit("\nExiting.")
else:
OriginalExceptHook(type, value, traceback)
sys.excepthook = NewExceptHook