Like I said in my comment; this depends on how the page is referenced. If it's done from Apex code within the package itself, make sure to use
PageReference pr = Page.PageName; in favor of
PageReference pr = new PageRefence('/apex/PageName'); The former automatically takes the namespace prefix into account.
To answer the question asked in the comments: If you have the name of the page (without the namespace prefix) and want to get a PageReference dynamically, you can use the
ApexPage sObject. Like so:
String pageName = 'MyPage';
ApexPage aps = [SELECT Id, NamespacePrefix, Name FROM ApexPage WHERE Name = :pageName];
String pageUrl = aps.NamespacePrefix != null ? aps.NamespacePrefix + '__' : '';
pageUrl += aps.Name;
PageReference pr = new PageReference(pageUrl);
Note that the query will return all pages with the same name, also ones with a different namespace prefix. So you should always make sure that the namespace prefix is one you expect.