Since WordPress 3.0 you can use Custom Post Types and you can define your own types of content – it’s more like pages than posts! Thereby you can use automatically the Permalink structure of your WordPress installation. That means, if you create a new post type, you can use Permalinks.
But the Permalinks only work if you recreate the Rewrite Rules of WordPress – that’s why many users initially have problems with it. If you create a new post type you probably get a 404 if you open this page because WordPress doesn’t know the URL-structure in your Permalinks since you didn’t create the Rewrite Rules again.
The easiest way is to safe the Permalink structure in your settings again. Alternatively you can include in your Plugin or Theme the function
flush_rewrite_rules(). This enables to create the Rewrite Rules again. Important: Flush rules only on activation or deactivation. Don’t do it on any other hook.