This is probably pretty obscure, but someone may run into it, so here goes.
Running on php5, the UPS module (probably most shipping modules) was reporting errors on any shipping request.
After much hunting down and hand wringing, I traced the problem to two undeclared arrays, that caused php5's "array_merge" function to barf.
Here are the places to fix:
in global.php
After the line: function run_shipping ($totalweight, $userinfo) {
add this line
$results=array();
and in the ups.php
After the line:
function process () {
add the line:
$return=array();
Seems simple, maybe even stupid, but in php5, array_merge requires 2 arrays as arguments. It doesn't assume you want an undeclared variable to become an array. I guess this is another argument for declaring variables before use! Yeah right....