g1smd - 2:59 pm on Sep 6, 2012 (gmt 0)
There should be no difference in a 301 redirect returned by PHP or by htaccess. A redirect is a redirect.
Things go wrong when a request results in an unwanted multiple step redriection chain. You should test a selection of canonical and non-canonical requests and look in detail at the Live HTTP Headers extension for Firefox for the results.
Redirecting old site page X to new site page Y should NOT pass through old site page Y or through new site page X on the way.