My headliner has started to sag right over the front passenger. While it is not causing me any issues (it is not so low that it hits the passenger or distracts me) it is very ugly. What is the best way to go about fixing it?

Reupholster it. You could do this yourself, or have it professionally done. If you were to do it, you would need to remove the trim pieces in the inside along the roof, and then remove the fabric. It may be attached to the sheet metal with some plastic clips. You will want to save as many of these as you can. Then, make a decision as to whether you want to completely remove the old fabric, cover over it, or just tighten it. Then put the new fabric on, using some adhesive in the middle, and use some staples to stale the back side of the fabric near the ends, that would be covered up by the trim. Re-install, and you should be good to go!

Tack it up. You could easily do this yourself, just use some small metal screws that match the color of the fabric.

My advice is to not spend too much time on trying to reattach it with spray on adhesives. I once removed a headliner and then scrapped all the loose foam off. Then sprayed and glued it back on. It lasted a few months, if that long. I got another car reupholstered professionally and it cost less that I thought it would and it was beautiful.