This method is checking if TAT is negative, and then returning 0 instead if that is the case:
SELECT STEP_ONE, STEP_TWO,
IIF (
(DATEDIFF(dd, STEP_ONE,STEP_TWO))
-(DATEDIFF(wk, STEP_ONE,STEP_TWO) * 2)
-(case datepart(dw, STEP_ONE)+@@datefirst when 8 then 1 else 0 end)
-(case datepart(dw, STEP_TWO)+@@datefirst when 7 then 1 when 14 then 1 else 0 end)
<= 0,
0,
(DATEDIFF(dd, STEP_ONE,STEP_TWO))
-(DATEDIFF(wk, STEP_ONE,STEP_TWO) * 2)
-(case datepart(dw, STEP_ONE)+@@datefirst when 8 then 1 else 0 end)
-(case datepart(dw, STEP_TWO)+@@datefirst when 7 then 1 when 14 then 1 else 0 end)
) AS TAT
FROM TEST_1
The two long expressions of 4 lines each are identical to the one you wrote.
EDIT:
To make the condition only affect TATs that were computed on weekends (as you asked for in your comment below) you can wrap the IIF inside another IIF that asks about weekends. Here is the resulting even longer query:
SELECT STEP_ONE, STEP_TWO,
IIF (@@DATEFIRST = 1 AND (DatePart(dw, STEP_ONE) > 5 OR DatePart(dw, STEP_TWO) > 5)
OR @@DATEFIRST = 7 AND (DatePart(dw, STEP_ONE) IN (1, 7) OR DatePart(dw, STEP_TWO) IN (1, 7)),
IIF (
(DATEDIFF(dd, STEP_ONE,STEP_TWO))
-(DATEDIFF(wk, STEP_ONE,STEP_TWO) * 2)
-(case datepart(dw, STEP_ONE)+@@datefirst when 8 then 1 else 0 end)
-(case datepart(dw, STEP_TWO)+@@datefirst when 7 then 1 when 14 then 1 else 0 end)
<= 0,
0,
(DATEDIFF(dd, STEP_ONE,STEP_TWO))
-(DATEDIFF(wk, STEP_ONE,STEP_TWO) * 2)
-(case datepart(dw, STEP_ONE)+@@datefirst when 8 then 1 else 0 end)
-(case datepart(dw, STEP_TWO)+@@datefirst when 7 then 1 when 14 then 1 else 0 end
)),
(DATEDIFF(dd, STEP_ONE,STEP_TWO))
-(DATEDIFF(wk, STEP_ONE,STEP_TWO) * 2)
-(case datepart(dw, STEP_ONE)+@@datefirst when 8 then 1 else 0 end)
-(case datepart(dw, STEP_TWO)+@@datefirst when 7 then 1 when 14 then 1 else 0 end)
) AS TAT
FROM TEST_1