setup cron to browse all pages
In short: wget is your friend when you want to warm up your page cache.

In more detail: http://linuxreviews.org/quicktips/wget/ for example. If you want to warm the cache for page requisites (all images, css, js etc linked to from any page) too, you can use wget -p which is not mentioned in that article. 

Got more interested about this and found some Drupal specifics: http://www.metaltoad.com/blog/how-drupals-cron-killing-you-your-sleep-simple-cache-warmer

To summarize: just setup your system's scheduled tasks (cron on *nix for example) to run wget in a manner that finds all your pages before your cache runs cold.