Starting out cautiously, yetconservative, can allow you to later expand, starting out with huge lengths can introduce unknowns for performance and usage--and could potentially make it difficult to trim down later.
Will you have lots and lots and lots and lots of columns that you are unsure about? Will changing them later be a monstrous task? If not then play it conservative, and if you hit the limit then you can expand--just keep in mind that you don't want these constraints spread all over your code; centralize them as much as possible and enforce them where required.
Try and choose a length that is longer than you expect, but not totally out of the question. If it's a field that you think 25 is reasonable for then make it 50; if 150 seems about right then make it 200.
Typically we use nvarchar(100) for names, 255 for URLs or other fields that can get long (these are usually just domain names, not full URLs to specific pages/resources of a site). Our mainframe imposes similar limits and every year we have a few field expansions--but we expected that and it's not a big deal to modify them.