The approach I use most often is to access the MOSS content database I'm after through a UNC path. Doing so exposes the content database structure through Windows Explorer and I can simply drag and drop files as I'm used to. If you've ever used SharePoint Designer to access a MOSS site, you'll see a structure through UNC that looks about the same (eg. _catalogs, SiteCollectionImages, etc).
UNC paths work with both port-based and host header-based sites but they can be a bit fiddly. Firstly, you need to ensure you're trying to access an edit site to which you have permissions--you probably won't get much from a read-only (anonymous) URL. Secondly, you may be prompted to authenticate. Finally, I always run into an error on first access if I try to browse the site root, so I usually start in \SiteCollectionImages.
Here's an example:
\\edit.mediawhole.com\SiteCollectionImages (host header)
\\dev-moss-mh:28000\SiteCollectionImages (becomes \\dev-moss-mh@28000\SiteCollectionImages) (
If you then drop the \SiteCollectionImages part, you'll see the full site hierarchy.
The Windows Explorer interface is obviously pretty basic so you won't be able to see version histories and approve content--you'll still need to take care of those aspects through the UI or some other way.
UNC paths allow spaces so if you're coming from a browser, make sure you URL decode the %20 values as spaces.
One last note, you may have a "Open with Windows Explorer" option on the Actions menu if you're viewing a document library via the All Site Content screen. Clicking this menu item will open a new Windows Explorer window pointing at an http:// URL to the same location (eg. http://dev-moss:30000/PublishingImages).
Update: you may need to ensure your client has the WebClient service started as well according to this.