Acabei encontrando a função FORMAT, usei ela pois ela formata o numero em texto e mantem as casas decimais mesmo que seja .00, mas achei ela um pouco mais lenta, mas como a base de dados é pequena não faz tanta diferença.
SELECT TC.CPF, TC.NOME, TC.VOLUME_DE_COMPRA, TV.MES_ANO, TV.QUANTIDADE_TOTAL,
(CASE WHEN TC.VOLUME_DE_COMPRA >= TV.QUANTIDADE_TOTAL
THEN 'VENDAS VÁLIDAS'
ELSE 'VENDAS INVÁLIDAS' END) AS RESULTADO,
FORMAT((1 - (TC.VOLUME_DE_COMPRA / TV.QUANTIDADE_TOTAL)) * 100, 'N2') AS PORCENTAGEM_PARA_SE_ADEQUAR_AO_LIMITE
FROM TABELA_DE_CLIENTES TC
INNER JOIN (
SELECT NF.CPF, CONVERT(VARCHAR(7), NF.DATA_VENDA, 120) AS MES_ANO, SUM(INF.QUANTIDADE) AS QUANTIDADE_TOTAL
FROM NOTAS_FISCAIS NF
INNER JOIN ITENS_NOTAS_FISCAIS INF
ON NF.NUMERO = INF.NUMERO
GROUP BY NF.CPF, CONVERT(VARCHAR(7), NF.DATA_VENDA, 120)
) TV
ON TC.CPF = TV.CPF
WHERE TC.VOLUME_DE_COMPRA < TV.QUANTIDADE_TOTAL
AND TV.MES_ANO = '2015-01';