Here I go again, talking to myself ...
I found the answer, which may be of interest to anyone watching...
It seems that under Vista UAC, CreateInstance will fail if the integrity level of the app attempting the createinstance and Outlook are not exactly the same.
if my application is run as administrator whereas Outlook runs in protected mode, or my application is run in protected mode whereas Outlook run as administrator, in both cases CreateInstance fails. For this reason, My app even behaves differently when run from the C6 IDE than when it is run from explorer.
If both my application and Outlook are run in the same integrity level, everything is fine.
If Outlook is closed, then Createinstance causes Outlook to run with the same integrity level (by definition) so all is well.
I'm not sure there is an easy answer to this (other than providing documentation to vista users). A google search reveals that this is not a particularly uncommon problem. People are trying to get hold of and change the level of the Outlook token without much success.
Maybe Steve will work it out <g>!