Charge for car insurance by the mile. There is evidence that people change their behavior when there are clear incentives to cut the number of miles. When you pay more for insurance the more you drive, rather than a flat rate for the month that lets you drive as much as you want, people will cut back driving.
Oregon has toyed with this but they seem carried away with using GPS to track the mileage, putting where everyone drives into a big database that then has to be purged of private data and protected from abuse. That kind of privacy threat will never catch on, and I can't figure out why the think that's the only technology to use for that purpose. They should just connect with the car's odometer and record that in a box.
You could tax registration the same way -- instead of making people pay a fat up front fee for tabs, giving them every reason to drive their asses off once they take that hit, you could tax the ones who drive the most more.
In some parts of Canada they overcome all these complexities by collecting the money for registration and insurance in the one place where it correlates best with pollution and congestion: at the gas pump. If you insure everyone's car out of a pool of money you get from a gas tax, it balances out nicely.