In SQL server is a check constraint applied before or after a default constraint on insert?
The check constraint is applied after.

You can see this from the fact that the following succeeds.

DECLARE @T TABLE(X INT DEFAULT 1 CHECK (X = 1)); 

INSERT @T DEFAULT VALUES;


Also the  execution plan shows that the assert operator operates on the values output from the table insert operator so is checking the values that were actually inserted.