The problem with another action becoming the default one happens (at least on my Windows XP SP2 machine) when the default value of HKEY_CLASSES_ROOT\Directory\Shell is either not set or set to any other action (apart from open of course). Initially, it is set to "none". (I mean a string "none", not unset. Totally unintuitive like anything else in the registry...)
So a reg file like the one attached should fix the problem (hopefully):
CODE
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\shell]
@="none"
ZhuGeLiang, maybe it could be implemented in your utility as an optional fix for people that got things messed up?