Finishing up a module and decided to see how the DNN 'Create Package' feature would do at writing out my .DNN file for me. I noticed something that the book doesn't include and may explain why my iUpgradeable isn't firing for me during the installation of my last module project.
There is a node called <eventMessage>...</eventMessage> that is a child node of <component type="Module">...
Haven't tested this yet but I plan on it soon and will post back if this is the missing piece to get iUpgradeable to work.
I found this in the auto-generated .DNN file (leaving enough of the surrounding text so you can see where it goes):
<processorType>DotNetNuke.Entities.Modules.EventMe ssageProcessor, DotNetNuke</processorType>