I had a similar problem when I bought mine. I checked air pressure when I got it and set it properly. Two tires were low. The tires were original from 97 with 65k on them. I balanced the wheels and it minimized shake. I just had the shop look over my car and they think the tires were driven for a while with improper pressure. It was pulling before I took it in and they said a tire was low again, I hadn't checked them in a month. The shop says they are wearing evenly just worn. I also need the lower control arm bushing and lower ball joints replaced. New tires should make all the difference. I expect it to drive like new with the new bushings and tires. If it still pulls I'll get an alignment, but the shop says bushings and tires will fix that.
97 328iS, Manual, Stock