Yes, they're probably stored out of row and if they are, reading them (the LOB column, not the rest of the row) incurs additional reads.
That said, if you need them, use them. If you need to store 40k of text in a column, use varchar(max) or nvarchar(max)
Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)SQL In The Wild
: Discussions on DB performance with occasional diversions into recoverability
We walk in the dark places no others will enter
We stand on the bridge and no one may pass