Исходя из вашего объяснения предполагаемого поведения запроса, я считаю, что это может быть близко:
SELECT Top 1 Id, Name
FROM Users U
INNER JOIN UserDetail D on U.Id = D.Id
LEFT OUTER JOIN CreditCards C ON C.Id = U.Id
LEFT OUTER JOIN CreditCardDetails CD on C.CCID = C.CCID AND CD.Active = 1
WHERE U.Active = 1 and (c.id is null
or (c.IsInternational = 1
and UserHasCC(U.Id) = 1))
Я не мог быть уверен, но соединения и имена объектов подсказывают мне, что UserHasCC не имеет реальной ценности. Возможно, он инкапсулирует флаги из таблиц, не показанных здесь.