Don't use DATEPART for this because it's affected by the @@DATEFIRST setting. The code below works correctly 100% of the time under all date and/or language settings, i.e., @@DATEFIRST doesn't affect the code at all.
(STF_Status is null OR STF_Status = 'empty') AND
a.Service_date < dateadd(day, case when datediff(day, 4, getdate()) % 7 = 0 then 3 else 0 end, cast(GETDATE() AS date))