Non puoi, come afferma già chiaramente il messaggio di errore, qualsiasi voce di indice non può essere più lunga di 900 byte.
Non è possibile indicizzare un campo varchar(4096) - punto. Non c'è modo di aggirarlo - è un limite di SQL Server rigido - non c'è modo di configurarlo, cambiarlo, ingrandirlo. Vedi Libri in linea - Dimensione massima delle chiavi di indice per conferma.
È necessario limitare la colonna "valore" a meno di 900 byte o trovare un altro modo per archiviare quei dati o semplicemente non includerli nell'indice. Se vuoi solo che il tuo campo "valore" nell'indice abbia un indice di copertura (per poter soddisfare le query dalla voce dell'indice), puoi spostare il campo in una colonna inclusa nell'indice - quelli non rientrano nel limite di 900 byte.
CREATE NONCLUSTERED INDEX idx_ncl_2
ON BFPRODATTRASSOCIATION(attributeid)
INCLUDE (productid, value)
Quell'indice dovrebbe funzionare.