Hi,
MakeRule can specify conditions with the syntax MakeRule[{LHS, RHS, conditions}]. In your case you want to avoid the case in which two indices are contracted. You can use for example
boxrule1 = MakeRule[{..., ..., ! PairQ[\[Nu], \[Rho]]}, MetricOn -> All, ContractMetrics -> True]
with your same lhs and rhs in your first definition of boxrule. The function PairQ[ind1, ind2] checks in the two indices are contracted. For example PairQ[a, -a] will give True, but PairQ[a, b] or PairQ[a, -b] will give False. Then ! is a WL abbreviation for Not.
Cheers,
Jose.