Altering nullability of column in SQL Server
The relevant documentation is here 


  ALTER COLUMN  Specifies that the named column is to be changed or
  altered.
  
  The modified column cannot be any one of the following:
  
  
  Used in an index, unless the column is a varchar, nvarchar, or
  varbinary data type, the data type is not changed, the new size is
  equal to or larger than the old size, and the index is not the result
  of a PRIMARY KEY constraint.
  Used in statistics generated by the CREATE STATISTICS statement unless
  the column is a varchar, nvarchar, or varbinary data type, the data
  type is not changed, and the new size is equal to or greater than the
  old size, or if the column is changed from not null to null. First,
  remove the statistics using the DROP STATISTICS statement. Statistics
  that are automatically generated by the query optimizer are
  automatically dropped by ALTER COLUMN.
  


In practice it seems that SQL Server does allow some additional cases beyond that mentioned in the documentation however.

As you show in your question ALTER TABLE test ALTER COLUMN field1 int null does in fact work so the restrictions on changes to columns used in indexes appear to be the same as those for user created statistics.

Moreover the caveat mentioned about Primary Keys seems to be untrue also. The following works fine.

CREATE TABLE test2(pk varchar(10) primary key);

ALTER TABLE test2 ALTER COLUMN pk varchar(100) NOT NULL