you are not alone on this one
There are a couple of things you can check/try......
1. take a look at the tabs that hold the sunroof in are they rusted or are the bolts that hold the tabs to the sunroof rusted.... mine were nasty so I replaced them all and the sunroof fit a lot snugger afterwards.
2. see if you can get your hands on some sunroof spacers. They go in between the latch and the roof panel. It helps ensure the sunroof is snuggly in place.
3. I picked up some silicon emulsion at our local car dealership (Bennets if you live in carleton place), it's like 5 bucks for a bottle. It brings the life back into the weather stripping, and helps it seal better to the glass.... this assuming that your weatherstriping is not torn, if it's torn, well you'll have to replace it.... you can still get them from GM.
4. If you've got a good seal around the weatherstripping then there's only one other thing I know of. You'll probably want to drill the drain holes in the drainage chanel. GM released a technical service bulletin at one point which recommended drilling four holes in the channel under the weatherstripping, to prevent water from becoming trapped between the seal & the channel (and rusting out the channel). 1 hole at each corner, 3/16" diameter. I attached a pic to show what I mean.
I'm gonna be doing number 4 to my car this summer, I just have to get the sunroof out of my car again. I used castor oil on the weatherstripping last summer and it would appear that the roof has baked onto the weatherstripping
so I suggest using the stuff I mentioned in number 3 and don't use castor oil or you may end up with the same problem I have.
-S