You could write the "with/without warranty" value to the CartItemCustomData object when adding to the basket, and you should then be able to read this in your custom code.
ShoppingCartInfoProvider.SetShoppingCartInfo(cart);
var parameters = new ShoppingCartItemParameters(productSKUID, quantity);
var cartItem = ShoppingCartInfoProvider.SetShoppingCartItem(cart, parameters);
cartItem.CartItemCustomData["WithWarranty"] = withWarrantyValue;