A good rule of thumb is to load the hyperref package as the last package in your preamble. From over 6000 (La)TeX packages, there are some exceptions that should be loaded after hyperref. Here is a list:
cleveref
amsrefs
float
beforehyperref
beforealgorithm
chappg
sidecap
linguex
geometry
robustindex
hypdestopt
,hypcap
,hypbmsec
attachfile
showframe
,showidx
uri
,pageslts
,regstats
refcheck
bookmark
glossaries
ellipsis
cmap
tabularx
footnotebackref
minitoc
hypernat
apacite
ocgx2
abntex2cite
Further packages with \RequirePackage{hyperref}
:
amsrefs
attachfile2
bugtracker
(part ofpgfplots
)classicthesis
doi
dtx-style
(part ofthuthesis
)eforms
exerquiz
hypgotoe
insdljs
ltxdockit
opcit
prerex
rec-thy
tdclock
toptesi
ydoc-code
,ydoc-desc
beamerbasearticle
bidituftehyperref
chextras
cmpj
dtk-pdf
easy-todo
hep
hrefhide
ifmslide
lstdoc
ocgtools
pdfcomment
pdfscreen
pdfx
rvdtx
strukdoc
ucshyper
Contributions came from here with the help of Lev Bishop, Stephen, Geoffrey Jones, Simon, Werner, and Stijn Hoop.