The parts car I just purchased had a good roof lining. It had been retrimmed at some point and was still in good condition, but a little dirty.
I took it out, gave it a good clean and fitted it to my 1991 325i, which had a very ugly sagging roof lining. It looks great inside now, although the colour is a little different.
Any auto trimmer can retrim your roof lining. Most will charge at least $350 to do the whole job, but if you can remove and refit the roof lining yourself (which is easy and fairly quick) then you can probably get the job done for about $125 to $150, including materials.
There are a couple of different types of materials that are usually used. One is a foam-backed material. I haven't seen a good colour match to the factory grey roof lining in this material and also it could suffer the same problem as the original when the foam decays with age and heat. The other material I have seen is a non-foam backed headlining material which is a good colour match and probably going to be longer lasting. However it is a bit harder to stick to all of the contours of the BMW E36 roof lining so doesn't look as good as the foam-backed material. However I think it is the better choice.
Having replaced a few roof linings on E36s now, I have found the quickest way of getting them in and out. Here's how I do it:
1. Remove A-pillar trim (the inside trim on each side of the front windscreen) - just grab it from the top and pull them off (though some tabs might break if you are careless).
2. Remove C-pillar trim (the inside trim on each side of the rear window) - removal is the same as for the A-pillar trim but these ones are more likely to break tabs.
3. Remove the grab handles - each is held in place with two screws covered by little plastic covers (which open from the centre outwards). The driver may not have a grab handle but you still need to remove the little covers from there too.
4. Remove sun visors and the clips.
5. Remove the centre light. Pull off the cover then remove the rest oit.
6. Remove the door seals, just from the top half of the car and leave them hanging there.
7. Lower the front seat belts height-adjustment to the lowest position.
8. The roof lining can now be removed. They usually stick to the roof a little so go around the car and separate it. Most people tell you to remove the B-pillar trim but you don't have to. Pull out just the top of the B-pillar trim a little on both sides. On one side of the car slide the roof lining behind the B-pillar trim as far as you can. Then on the other side pull out the roof lining from the B-pillar trim (might have to bend the roof lining just a little), then slide it out from behind the other side B-pillar trim. Now you can remove it from the car altogether.
Recline the seats all the way. On a 2-door car it comes out fairly easy. On a 4-door it's a bit harder and will come out one of the back doors. You need to have the front seat in the right position and you will need to bend the roof lining a little (which it can take).
Note: If your car has a sunroof then you will first need to remove the inside seal that runs around the sunroof. If you are going to also retrim the sunroof cover then this is quite a big job. You need to remove the whole sunroof mechanism and then remove the cover from the mechanism. It's not too difficult, just more time consuming.
9. Installation is the reverse or removal. There aren't really any tricks except that you will have to do the B-pillar trick again where you slide it far down one side before you can get it behind the other side. I advise you to use gloves so you don't get your new roof lining dirty, and also clean any areas that the new roof lining is going to have to touch while you get it in to position, like the seats and the inside of the B-pillar trim.