I've sometimes explained it like this: ездить, like ходить, водить, and others, is a multidirectional verb.
Most multidirectional verbs can take a directional prefix (в-, вы-, при-, у-, etc.) to form an imperfective that has a nuance of direction:
входить 'to enter,' приводить 'to bring,' уносить 'to carry/take away,' etc.
Ездить is unusual in that it's not used with directional prefixes; instead, with directional prefixes we use the stem -езжать:
въезжать 'to drive/ride in,' приезжать 'to arrive,' уезжать 'to depart'
But: ездить can be used with prefixes that aren't being used in a directional sense:
поспать 'take a nap,' почитать 'read for a while,' поездить 'drive/ride around for a while'
It gets trickier when a single prefix can have more than one meaning: про- as a directional prefix meaning 'through' or 'past,' vs. про- in the sense of 'doing something for all of a certain time period.'
With the directional meaning, use -езжать;
Каждый раз, когда я проезжаю через Москву,... 'Every time I drive through Moscow...'
With the temporal meaning, use ездить:
Кстати, на Ford я проездил почти неделю, но все равно регулярно ошибался и вместо двери открывал окно. 'By the way, I drove the Ford for almost a week, but still kept messing up and opening the window instead of the door.'
V.V.'s interesting examples above (like выездить for taming a horse) can fall into this category of non-directional usage.