I have a few people around who were driving E46.
Let me share their exp:
1. Cousin - brand new 330i as family sedan - all factory no mod - non-stop problems - changed to Honda Stepwgn
2. Friend - brand new 320i as family sedan - all factory no mod - blown engine at traffic stop - junkyard
E46 steptronic auto is the highest concern. Either the GM or the ZF has a high probability of losing reverse. The GM is a cheaper fix that needs a new solenoid, the ZF needs a new torque converter. Both requires unmating the transmission from the driveline and engine. The best solution to the problem : Get a manual.
The M54 engines are pretty solid, but they don't like slow city driving. They will develop a carbon buildup issue down in the piston rings and make them bind. They are engines that respond well to an Italian tune-up. Baby the engine around all the time, it will blow up on you.
My E60 has a M54B25 that's run 150k km now, I reach 6k RPM at least once per day, once everything has warmed up of course, and it's as smooth and responsive as an NA I6 should be.
Some problematic areas for that era of Bimmers: (Assuming your engine and transmission is healthy)
-Water Pump (Engine Driven, composite impeller. Impeller will shatter and not circulate coolant. You have seconds to shutdown the engine or you will overheat the engine and warp your head) Cost to fix: ~$600-800 new OEM pump, DIY or add labour
-Coolant expansion tank (plastic, gets brittle with heat, leaks all your precious coolant onto the group. See above. ) Cost to fix: ~$500 for a tank, DIY this, and then replace your coolant hoses if not done yet.
-Valve cover gasket (Rubber gasket will plastcize with the heat cycles. Hard gaskets don't seal very well and oil will leak into your spark plug well and onto the exhaust manifold.) Cost to fix: ~$350 for new gaskets, DIY or add labour
-DISA valve (Controls intake runner length, plastic parts will wear out and fall off. Unlucky ones will end up falling right into the intake valves and down into the cylinder. Engine go boom.) Cost to fix: depends. If the DISA is still healthy, an aftermarket enhancement kit will correct the problem. ~$800ish. New DISA valve around ~$2k. Definitely DIY this one, it's 2 T40 bolts and 1 cable.
-VANOS rattle (The vanos solenoids seals will flatten over time and not seal properly. The piston will rattle around its bore. Car will feel lethargic below 3K rpm.) Cost to fix: $250 for new seals made of better materials. The problem is getting inside the VANOS unit to do the repairs. Not a DIY for everyone, do it with the valve cover gasket cause you need to take it off anyways.
-Idler Pulleys (worn bearings) Cost to fix: ~$5-600ish for the 2, DIY them
-Window regulators (Windows stuck or rattling) Cost to fix: $800 parts, probably not a DIY for everyone so add labour
-Electricals and ECUs Cost to fix:depends
-Front control arm and Rear trailing arm (Worn rubber bushing, causing noise and alignment issues) Cost to Fix: About ~$800 each, and probably not DIY for most people
E46 may still have a mechanics engine fan that is driven off the crank pulley via a clutch, may need a fan clutch removal tool to do some of the DIYs. Retrofit an electric fan while you're at it.
The above is not a complete list, but most items are maintenance items that should be done on schedule. If you want something that's reliable, get a new car. If you don't mind working on your car and dealing with it's tantrums and moods once in a while, you can get something cheap and fun to drive.