Note that by using the above comparison would be identifying that there is a special or a sale or neither, not just a sale. In both cases yes a price other than the normal price is being reported, but the $specials_price (generated in includes/modules/pages/YOUR_PRODUCT_TYPE/main_template_vars.php) is intended to represent conditions associated with a special/sale, though neither is specifically identified as a result. If though, there is neither a special nor a sale, then $specials_price is not defined because $new_price is false and therefore $specials_price is not set.
So, in actuality, to identify that a product has a special price or a sale price, the preferred "easier" analysis would be:
Code:
if ($new_price !== false) {
// action to take if product has either or both a special or a sale
}