The cause we found (June 2006 version) was that we renamed the output assembly for our Infrastructure.Interface project. Not the project, but the output assembly. It's 100% reproducible. Name the output of the assembly to something other than Infrastructure.Interface
(we prefix the assembly with the application name) and the menu item is gone. Name it back, it reappears and runs correctly.
The section seems to be removed from the SLN file:
GlobalSection(ExtensibilityGlobals) = postSolution
ShellProjectGuid = "insert the guid of your shell project"
CommonProjectGuid = "insert the guid of your Infrastructure.Interface project"
RootNamespace = "insert your Root namespace"
for the entire thread.