overstating field size in database design
If you're talking about varchar and nvarchar then no, there is no penalty for allowing a higher field length.



Some caveats to bear in mind, though:


There is a 2 byte overhead per row for variable length fields (per field).  If you have a very short field it may make more sense to use a CHAR.  Varchar(2) for instance actually uses between 2-4 bytes per row, while CHAR(2) always uses 2.
Very long fields cannot be indexed.  The maximum length for all fields in an index key set is 900 bytes.
If you allow more data than you expect, you will eventually get unexpected results.  If you allow 100 characters for a street name, at some point other data is likely to get into that field without you being aware of it (for instance the entire address).  If you had it appropriately sized, you would likely get an error on insert instead.
Allowing very wide rows could lead to page splits and fragmentation.  If you have a row longer than 8k it will need to be split onto multiple data pages.  A lot of these can really hurt performance.  Narrower in general is more efficient.