I'm trying to use the FindPagesWithCriteria function. This returns outdated pages. Do I need to call FilterForVisitor.Filter() on the returned pages or should I add a criteria for this?
Yup, you need to filter heavily what you get from FindPagesByCriteria. FilterForVisitor will take care of the most obvious problems like removing pages that isn't published or which current user lacks access to yes
If you use episerver controls to display lists of results, these list will do this filtering for you btw...