From what i can see, it doesn't actually carry an array full of ALL the product data over to the shopping cart, but instead uses $prid to hold the product id, plus some other checks that are made for attributes etc. The details in the cart are then pulled in from the database in includes/classes/shopping_cart.php.
If i'm right on this, that explains why i can't get the cart to display the correct price, even though the product page does.

So what i'm thinking is that if i set a var when the product is added to cart via the ajax system, which is only used for offers, i should be able to store that var with the product id in TABLE_CUSTOMERS_BASKET if they are logged in, or in the session contents if not, and depending upon the value of the var, change the code around line 1083 in shopping_cart.php to reference the alternative price. I'll also need to do the same where it calculates the total etc i suspect, but not looked that far yet.

Anyone got any better suggestions, or comments on whether or not this is the best way forward (Aimed at ZC team as they know the core better than anyone else.)