The only thing that I can figure is that people believe that a NULL varchar in SQL Server takes up less space than an empty NOT NULL varchar. I devised a test to see if this was true.
create table temp(data varchar(500) NULL)
create table temp2(data varchar(500) NOT NULL)
declare @counter int
set @counter = 0
while (@counter < 50000)
insert into temp(data)
insert into temp2(data)
SET @Counter = @Counter + 1
exec sp_spaceused 'temp'
exec sp_spaceused 'temp2'
drop table temp
drop table temp2
This script, when run on SQL Server 2005, shows that both tables are exactly the same size, proving that NULLS and empty strings take up the exact same space on the disk.
The moral of the story is this: don't use NULLs if you think its saving you space, its a false economy.