The problem is, it seems when I enable a disabled module, the module's schema version in the system table is automatically updated to the latest version supplied by hook_update_N.
So my current module with the schema version -1 is modified to 7106 when I enable the module, and no hook_update_N functions are run.
So when I come to the next step of running database updates, no hook_update_N functions are run because the module thinks it's already the correct version.
The only method I can see is to manually set the module version in hook_enable, however I'll then need to update the module code to remove the hook_enable to make sure it doesn't run if the module is ever re-enabled in the future, so obviously this approach is a bit dirty.
I'm hoping there's a better solution?