This is something I have to deal with every day when creating themes that use lots of custom post types.
Basically, we want our custom post types to have all the same features as a regular post or page. This means categories, archives, etc.
First you should make all of your regular pages. This means:
- archive-cpt.php
- categories-cpt.php
- single-cpt.php
- etc..
Now, if you have done it right, navigating to pages like /custom-post-type/page/2/ you should see you archive, and etc.
Now, the trick after this is to make the users see your custom post type on the front page instead of the regular blog posts.
To do that you'll want to create a page template. This page template will end up working like index.php or archive.php, where it will list 10 (or more) posts. When you've created it, create a new page on the site and set the page template to your new template.
After that, go into Settings -> Reading and select that page as your Front Page. You should now have a list of the most recent custom posts you've added.