There are two ways of doing this.
Put your hidden pages where they won't be seen
Usually, the bottom level of your site doesn't display child pages in its nav bars. So if you hang some pages below that level, they'll never show in any nav bars. You can then link to them through a normal internal link off a text link or from a graphic and the page will be loaded - but, to all intents an purposes, it is hidden until a link you create is clicked.
Create a hidden area
Somewhere in your site (I usually do it on the level under the home page) create a page you call "hidden" or whatever. In Site View, click the Don't Publish radio button.
Then hang a whole sub-site below that page (with all these subsequent pages marked to publish). None of these pages will show on any of your nav bars for the main area of your site, but they'll all be accessible as a separate "site" if you give someone the address of the the top published page (or, indeed, the address of any single page).
This page was written, and is maintained, by Dallas