Up to now, cmg creation for Mozilla-* applications such as Netscape, Firefox, Firebird, Sunbird and nvu failed because these applications need a writeable directory at first start (I continue to consider this bad design).

After some investigation, I have now found the root cause:

The file firefox/chrome/app-chrome.manifest gets written at first start. If (as in the case of a cmg) this is not writeable, then the launch fails. The workaround for klik is that it needs to create that file (with proper content) before the cmg gets created.

As a proof of concept, I have set up
klik://firefox-nightly - this installs the latest developer build of firefox, which is updated almost every day. The cmg is built "on the fly", using the following as firefox/chrome/app-chrome.manifest

Code:
content	necko	jar:comm.jar!/content/necko/
content	xbl-marquee	jar:comm.jar!/content/xbl-marquee/
content	cookie	jar:comm.jar!/content/cookie/
content	passwordmgr	jar:toolkit.jar!/content/passwordmgr/
content	global	jar:toolkit.jar!/content/global/
content	global-platform	jar:toolkit.jar!/content/global-platform/	platform
content	global-region	jar:toolkit.jar!/content/global-region/
content	mozapps	jar:toolkit.jar!/content/mozapps/
skin	communicator	classic/1.0	jar:classic.jar!/skin/classic/communicator/
skin	global	classic/1.0	jar:classic.jar!/skin/classic/global/
skin	mozapps	classic/1.0	jar:classic.jar!/skin/classic/mozapps/
skin	help	classic/1.0	jar:classic.jar!/skin/classic/help/
content	pipnss	jar:pipnss.jar!/content/pipnss/
overlay	chrome://browser/content/pageInfo.xul	chrome://pippki/content/PageInfoOverlay.xul
overlay	chrome://communicator/content/pref/preftree.xul	chrome://pippki/content/PrefOverlay.xul
overlay	chrome://navigator/content/pageInfo.xul	chrome://pippki/content/PageInfoOverlay.xul
content	pippki	jar:pippki.jar!/content/pippki/
overlay	chrome://browser/content/browser.xul	chrome://inspector/content/tasksOverlay.xul
overlay	chrome://browser/content/macBrowserOverlay.xul	chrome://inspector/content/tasksOverlay.xul
overlay	chrome://inspector/content/commandOverlay.xul	chrome://inspector/content/viewers/dom/commandOverlay.xul
overlay	chrome://inspector/content/commandOverlay.xul	chrome://inspector/content/viewers/styleRules/commandOverlay.xul
overlay	chrome://inspector/content/commandOverlay.xul	chrome://inspector/content/search/modules/commandOverlay.xul
overlay	chrome://inspector/content/keysetOverlay.xul	chrome://inspector/content/viewers/dom/keysetOverlay.xul
overlay	chrome://inspector/content/popupOverlay.xul	chrome://inspector/content/viewers/dom/popupOverlay.xul
overlay	chrome://inspector/content/popupOverlay.xul	chrome://inspector/content/viewers/styleRules/popupOverlay.xul
overlay	chrome://inspector/content/popupOverlay.xul	chrome://inspector/content/search/modules/popupOverlay.xul
content	inspector	jar:inspector.jar!/content/inspector/
locale	inspector	en-US	jar:inspector.jar!/locale/en-US/inspector/
skin	inspector	classic/1.0	jar:inspector.jar!/skin/classic/inspector/
skin	inspector	modern/1.0	jar:inspector.jar!/skin/modern/inspector/
content	branding	jar:browser.jar!/content/branding/
content	browser	jar:browser.jar!/content/browser/
content	browser-region	jar:browser.jar!/content/browser-region/
overlay	chrome://communicator/content/contentAreaContextOverlay.xul	chrome://communicator/content/permissions/imageContextOverlay.xul
overlay	chrome://communicator/content/pref/preftree.xul	chrome://communicator/content/pref/permissionsPrefsOverlay.xul
overlay	chrome://navigator/content/navigatorOverlay.xul	chrome://communicator/content/permissions/permissionsNavigatorOverlay.xul
overlay	chrome://navigator/content/navigatorOverlay.xul	chrome://communicator/content/permissions/cookieTasksOverlay.xul
overlay	chrome://messenger/content/mailWindowOverlay.xul	chrome://communicator/content/permissions/imageContextOverlay.xul
content	communicator	jar:comm.jar!/content/communicator/
skin	browser	classic/1.0	jar:classic.jar!/skin/classic/browser/
Greetings,
probono