it comes from C
You could easily write
if(user=null) by mistake with only one = sign which instead of comparing assigns null to user and then tests the value of null.
If you wrote it as "if (NULL == user)" then you got a compiler error if you accidentally only wrote one =
I never liked it, it was as mistake I rarely made, and if I did it usually got caught first time I ran the program. But it made code in my opinion MUCH harder to read.
In c# there is no reason other than habit.