Iv'e had a similar problem but I haven't found an answer yet. This may help a bit, though.
For me the problem is a translation from MSQL4 to MYSQL5 - the contrib works fine in MYSQL4 but not in MYSQL5.
the code producing the problem is in the file: ADMIN/category_specials.php around line 471-
********************************************************************************
$specials_query_raw = "select A.products_id, B.products_name, A.products_price, C.specials_id, C.specials_new_products_price,
C.specials_date_added, C.specials_last_modified, C.expires_date, C.date_status_change, C.status, F.special_id from " .
TABLE_PRODUCTS . " A, " . TABLE_PRODUCTS_DESCRIPTION . " B , products_to_categories E
left join " . TABLE_SPECIALS . "C on C.products_id = A.products_id left join special_product F on A.products_id = F.product_id
left join special_category D on E.categories_id = D.categ_id where E.categories_id = $categ_id and E.products_id = A.products_id and
A.products_id = B.products_id and B.language_id = '" . (int)$languages_id . "' order by F.special_id, C.specials_id, B.products_name ";
**********************************************************************
trying to convert this to MYSQL5 just fries my brain - if anyone else can do this translation I would be very grateful.