You can change the quicklaunch to use flyout subheadings instead of
static ones. Not exactly the same as expand/collapse, but perhaps
this will meet requirements.
You do it by editing the master page in SharePoint Designer (or, if
you don't want to customize the site, by editing the master page in
the 12 hive). Of course, don't edit the OOTB master pages if you can
avoid it; copy them and make your own.
In default.master, for example, look for this section:
<Sharepoint:SPNavigationManager
id="QuickLaunchNavigationManager"
Look below this for these parameters:
StaticDisplayLevels="2"
MaximumDynamicDisplayLevels="0"
Change StaticDisplayLevels to 1, and change
MaximumDynamicDisplayLevels to 1 or 2, depending on how deep you want
it to go.