Just to be clear, Bart's example is compiled as:
SELECT CASE WHEN 0 <= 0 THEN 0 ELSE LOG10(0) END;
..which also gives the error (when it should not). Reproduces on 2005 (build 0.05254) and 2008 (build 10.0.4272) for me.
Paul White
SQLPerformance.com
SQLkiwi blog
@SQL_Kiwi