That particular example looks funny. But say that I only want to see order rows for a certain product. I could certainly write:
SELECT ...
FROM Orders O
JOIN OrderDetails OD ON OD.OrderID = O.OrderID
AND OD.ProductID = @ProductID
I might prefer to have the condition in the WHERE clause, but if you have lots of joins coming later, you may find it easier to read by having the condition in the join.
And if it is a outer join, this is where you need to have condition on the variable.