If it's under warranty Richard, don't let them glue the darn thing back but rather replace the entire seal. It's not cheap, I remember my advisor telling me its like $200 per seal.
For those that are out of warranty, try using Gorilla glue from Home Depot. Apply the glue and use some packaging tape to hold the seal up. Let it sit over night and that thing will stay on forever.
I'm surprised that with all the E46 owners that have experienced this problem, BMW still told me they were unaware of this when I called them.