I make no bones about it; I am a BMW fan...have been for a long time. Not just in a "I like their cars 'cause they're cool" way, but in a nerdy, tell you everything you ever wanted to know about each chassis code and every engine kind of way. I don't get too hung up about the image these cars project; rather, I care more about how they drive than anything else. Most importantly, I value a good engine, and if there's one thing BMW has done consistently well over the years, it's build good engines.
Over my nearly three years of owning an E46 330ci, I have both grown to love and hate the car; in many ways, it has exceeded even my wildest expectations, in others, it has been a miserable disappointment.
One of the best handling cars on the road, period. Even in non-sport guise, this is very near the high-water mark for BMW.
The M54 engine is one of the best implementations of an inline-6 engine of all time, of any manufacturer. Decent power with a good power band, all with good efficiency and a killer soundtrack.
The E46 has about the perfect balance between ride quality and handling. The ride is firm but not so firm that long trips are approached with a sense of dread.
For a small car, the E46 has incredible cargo space; in my coupe with the seats folded down, you have nearly seven feet of flat cargo space. Even without folding the seats down, the trunk is surprisingly roomy.
The E46 has a clean, restrained design that will probably go down as one of BMW's best efforts, unlike its more divisive successors. The car looks totally modern even 15 years later.
Reliability & durability
The single biggest weak spot in the E46. Even doing most of the work myself, the car helps itself to $2000 of parts per year. The cooling system is a bloody joke, failing like it is 1950 all over again. Rubber bushings in the suspension are made of melted down rubber duckies, and you'll blow through a pair of front sway bar links every year if your roads are rough. The oil separator and the DISA valve are ticking time bombs, just waiting to destroy your engine. If you can't do the work yourself, I would recommend looking elsewhere for a car; paying a shop to fix your E46 every time it cries would be outrageously expensive.
Warranty, maintenance cost
This ties in with durability; E46s can be outrageously expensive to run. Plan on a minimum of $2000 per year for maintenance and much more if you pay someome to fix the car for you. Wear items aren't super expensive; it's all the other things that will break that will cost you dearly.
Materials & workmanship
Shoddy materials everywhere. From rear wheel arches that rust at the slightest hint of moisture, to suspension components made of melted down rubber duckies and critical cooling system components made from melted cookie trays, things are going to break, and break often.
Insurance is expensive in an E46, no matter your claim history; partly because the insurance companies ascribe a higher-than-average rate of accidents to these cars, but mostly because body work on these cars is hilariously expensive.
Brand reputation & image
When you drive a BMW, everyone on the road assumes you're the biggest a$$hole on the face of the Earth. Sure there are some bad actors out there, but the majority of us are really nice people...I promise!
If you are a BMW fan, you can't do much better than an E46 3-Series. They are some of the best driving and looking cars on the road, but potential owners need to be aware that despite being relatively cheap to buy these days, they are anything but cheap to own.