; it was actually really easy. my rear sunroof was the leaker, so i didn't even have to fully remove the headliner.
start with the ceiling panel over the rear door, that houses the headrests (if you're SE7). this piece just yanks off, but be careful as the little sliding beauty plates at the headrest may fall out and break if they make it to the pavement.
pop the cargo light cover off, and there are two nuts securing the headliner beneath that
peel the felt trim off around the roof opening
pop the heater and roof controls from the overhead console, there's a screw in there securing the liner too
pop the beauty plate off of the rear seatbelt openings in the cargo pillar trim (if equipped)
pull the ribbed fasteners out, there are two screws on either side with beauty caps
i simply left the pillar trim (with the seatbelts still attached and threaded) in the cargo area, just off to the side
drop all of the oh-shit handles in the 2nd row and cargo area
at this point i was able to lower the rear half of the headliner with ample room to service the sunroof
i toyed with the B pillar trim, but as i have read, they are a complete SOB to remove, so i left them in place. you'll have to pull them to fully remove the liner
; here are the grommets i used, picked up at the local big box hardware store. they're definitely not OEM, or even a "direct-fit" replacement, but they worked like a charm and look factory in place. i didn't opt for the shiesty OEM seal system, i used a clear polyurethane sealant also from the big box store... a hefty bead around the exterior trim, and a smaller bead around the exterior roof opening. after installing the trim and pan, a fair amount oozed out. after allowing to harden, the sealant is easy to peel/roll off with your fingers. several leak tests including a trip through the carwash, and still bone dry!
i just ordered some 2004 roof racks, when they arrive next week i'll probably have to fully drop the headliner to put them on, and i'll report if anything changed.