userChrome.js is an extension, available for most Mozilla products, which can facilitate the rapid development of extensions and allow for chrome customization without an extension. It's a personal favorite of mine and a must have for any extension author.

While some of these snippets may work in semi-current releases of Firefox (1.5+), they can easily break with even the smallest of code changes (primarily those using a <functionName>.toString().replace()) or by conflicts with another extension. The XUL document and version(s) of Firefox used (as I remember it) is noted next to the snippet. Most may only be useful as examples.

Note: userChrome.js 0.8 runs on every window, not just browser windows, so be sure to wrap these in a:

if (location == 'chrome://browser/content/browser.xul') {
  // code
}

Or use deathburger's fancy subscript loader.

Notable snippets:

userScripts.js (browser.xul: 2.0, 3.0):
My favorite of the bunch, a Greasemonkey lite.
 
For maximum compatibility, the same script directory (<profile>/gm_scripts) and @include/@exclude directives are used. For maximum incompatibility, the script is appended to the document, meaning Greasemonkey's pref, logging, and related functions will be unavailable, breaking the script.
 
There are two new directives - @rinclude and @rexclude, which allow for actual regular expressions. Hooray!
 
Gone is the UI and unnecessary config.xml & script processing. Scripts are cached in memory and updated if the modification time of the directory (and subsequently the script) changes. Includes/excludes are taken directly from the script, which is convenient for me because I always ended up changing both for my script collection anyway...
 
It's been working great for me, but your mileage may vary.
Download manager link handler (browser.xul: 2.0, 3.0):
Send links to an external download manager with a control+click, with the exception of viewing .nfo and .txt files in a popup window. This uses my perl+curses wget front end, but anything that can take a URL on the command line should work fine.
Remember download manager position (downloads.xul: 2.0, 3.0):
Remember the download manager's position.
Open tab right (browser.xul: 2.0):
Open new tabs to the right of the current. This is the core for my extension of the same name, works in 2.0+.
Target killer (browser.xul: 3.0):
Disables all link targets without a matching named window. There are a few similar Greasemonkey scripts, but window.name is not accessible cross-domain when running from content.
Target remover (browser.xul: 2.0):
Remove select target attributes from links as you click on them (rather than processing the entire document on load).

And the rest:

Add support for target=_tab (browser.xul: 2.0):
Probably not very useful, target=_tab is infrequenly used and not a w3c recommendation.
Alt+1/2 to cycle back/forward through tabs (browser.xul: 2.0):
An IRC request to make alt+1 cycle back and alt+2 cycle forward through tabs.
Close window when closing the last tab (browser.xul: 1.5):
An IRC request to close the browser window when the last tab closes.
Control+click for popups (browser.xul: 2.0):
My failed attempt to implement a similar feature found in Internet Explorer. It works, but affects link targetting.
Control+W key disabler (browser.xul: 2.0):
An IRC request to disable the control+w shortcut when browser.controlwkey.enabled is false.
Disable double click on tabbar (browser.xul: 2.0, 3.0):
Disable creation of new tabs with a double click on the tabbar.
Disable onclick handlers (browser.xul: 2.0):
Following my failed control+click for popups is my failed attempt to disable many avenues of unwanted popups. Eventually scaled back to link clicks, window, document, and document.body, as it was just too troublesome (even on the small subset of sites I visit).
Disable page style by default (browser.xul: 2.0):
An IRC request to disable page styles (View -> Page Style -> No Style) by default.
Disable space bar scrolling (browser.xul: 2.0):
An IRC request to disable page scrolling with the space bar.
(Re)enable throbber URL (browser.xul: 2.0):
An IRC request to reenable the throbber URL (loading browser.throbber.url), undoing bug 329601.
Findbar on top (browser.xul: 1.5):
Move the findbar to the top of the browser.
Hide everything in fullscreen (browser.xul: 2.0):
An IRC request to hide everything (nav, tabbar) in fullscreen mode.
Hide findbar on mousemove (browser.xul: 3.0b2pre):
When the (quick) find bar closes, the last selected element (link, document, etc) is focused which is accompanied by a raise (bug 332990). Many (most?) window managers on unix-like systems see the raise and refocus the browser window, which can result in focus stealing.
 
This script will close the findbar if the mouse pointer reaches the edge of the content area or moves out of an HTML document. mousemove didn't always fire if the pointer was moving quickly, extending the edge and doubling up with mouseout seemed to help, but that still leaves other unhandled cases such as the window losing focus with an alt+tab, moving the mouse (focus follows), or clicking to focus another window.
 
The first time through the bug I completely missed the mention of mozilla.widget.raise-on-setfocus, which seems ideal.
Relocate recently closed tabs (browser.xul: 2.0):
An IRC request to relocate the Recently Closed Tabs menuitem from History to Tools.
Toggle cookies (browser.xul: 2.0):
An IRC request to add a cookies toggle menuitem to the Tools menu.
Throbber as Go button (browser.xul: 1.5):
An IRC request to turn the throbber into the go button, loading the contents of the urlbar.
BugMeNot context menuitem (browser.xul: 2.0):
An IRC request that loads the BugMeNot info for the current page in a new tab (or some such).
userContent.js (browser.xul: 2.0):
A pre-cursor to my userScripts.js snippet, appending the contents of userContent.js to the page.

Related: userChrome.js on mozillaZine's wiki, forum #1 & #2.

Feedback is welcome - mozilla+uc [ at ] gozer [ dot ] org.