On my 330 I just replaced the CV Joint, I think ECS Tuning has it for about $160 + shipping. Really easy to do. Just pry out the cover, clean off the grease to expose the snap ring, remove the snap ring and the joint slides off, it made need a little persuasion.
Slide the new joint on and pack it with new CV Joint grease and Replace the cover. All in all took me about 2 hours to do the job and that included a new CSB.
As a note the 330's (i, Ci Cic) are the only E46's that use a a CV Joint on the diff end of the driveshaft. It can make it difficult to obtain one from an driveshaft remanufacturer as there are not alot of "cores" around.