No, you won't be. Your IO efficiency is essentially determined by how many rows you can fit on a page related to how much of the data in the rows you require to satisfy queries. If you have lots of text in each row then you have less rows per page. To read a row, SQL Server has to read the entire page irrespective of whether or not it actually needs that entire page's data.
So for the scenario you are describing moving the VARCHAR data into another table and only reading it when necessary will allow more rows per page in the main table.
Of course, if you are only retrieving single rows at a time then the this greatly reduces the advantage of this design. If you report on this data and return many rows, especially contiguous rows, then it is very efficient. I probably should have mentioned that too originally.