I ran across the handy-dandy Insert Module yesterday, which, in its own words, "adds a simple JavaScript-based button to FileField and ImageField widgets [so that] images may be inserted into text areas with a specific ImageCache preset".
It works just fine without a wysiwyg, too. If there are imagecache presets being used, it inserts the preset name as a CSS class. That let me create, for example, two presets that differ only in name, and style them to float one left and the other right, allowing the user to easily insert stylish images into a node. Most rad.
My only problem was that I there were a lot of images and not a lot of text, so the floats were bumping into each other and causing all kinds of text-warping oddities.
My solution is a new input filter that places a float-breaking entity before each inserted image. I thought about inserting it along with the image, but that would clutter the body editing field. jQuery would have been really easy, but comes with all the classic js drawbacks.