The system is designed specifically to disincentivize people from doing what you did -- to book without really having a good sense of how long something is going to take. This is to prevent people from screwing over the next person, which as you said, you felt bad about. And you should -- you fucked them.
The system is what it is, and is designed for a certain kind of use. If you're going to take a trip during a relatively in-demand time (meaning, not the middle of the night) that's going to take 3.5 hours +/- 1.5 hours, you either book for 5 hours or you probably shouldn't use Zipcar. You can risk it to try to be efficient, but then you might pay a big ole fine and screw over someone else.
If you need to be able to take highly variable length trips and not commit to a given rental length, then maybe you should buy a car. Don't blame Zipcar when you're trying its very structured system in a willy-nilly manner.
You literally had a worse experience on your first drive than I've had on any of my probably 100+, and you're condemning the entire service -- nay, the entire business model -- based on one experience. One. Surely you can see how this seems like madness.