If I include [p] in the placement specifier of a \begin{figure} environment, figure floats may be placed on a dedicated page. However, at least in the “book” document class, floats are centered vertically on those pages.
How do I force all “pages-o-floats” to be aligned to the top margin (just like normal text pages)?
I believe your answer is in the UK TeX FAQ:
The simple fix is to reset \@fptop in your preamble:
However, you might find that this is a bit too high, so you might want something like 5pt instead. (Anyway, the FAQ entry is well worth reading; it explains in more depth what’s going on than I am here.)