I haven't got any specific errors (at the moment anyway) as such as the code hasn't been moved onto the box that is running Linux. It will be shortly, but not quite as yet. However, I had a very similar issue recently where the header function was causing me issues when run on the linux box, but not on my Windows box. I ended up having to re-write logic in the code, but in this case i'm really looking to avoid that. In these instances, there is a lot that can be said of remote development, same environment, same configuration files, same file system etc....
Thanks for the HTTP and urlencode information, i've changed the redirect just incase this is a potential issue between the two environments. Hopefully, this will catch the problem before it arises.
PHP Code:
// error - redirect
if (!is_numeric($order_id)) {
header("Location: http://" . $_SERVER["SERVER_NAME"] . "/php_code/crmpicco_order.php?order_id=" . urlencode($order_id) . "&errno=2");
exit;
}