I do not know of any version of Sitecore that supports Dependency Injection for Rules out of the box. Using dotPeek against 8.2 Sitecore.Kernel.dll it looks like you can override the default RuleFactory but you cannot in earlier versions.
My suggestion would be to use the Service Locator pattern and overload the constructor.
public class AccountHasProduct<T> : WhenCondition<T>
where T : RuleContext
private readonly ICustomerContextFactory _customerContextFactory;
public AccountHasProduct([CanBeNull] ICustomerContextFactory customerContextFactory)
_customerContextFactory = customerContextFactory ?? Ioc.Resolve<ICustomerContextFactory>();
** Important note: Rule objects are NOT transient, meaning they are pulled across requests so whatever you inject must NOT have user/session/request specific state.