These are two different datatypes. In your first question, yes 250 characters is the max for THAT varchar you specified. If you made the same field in char, you'd get a 250 character field, with the spaces padded on the end of the data to fill out to 250 characters. So char is great for something like a simple zip code that will always be 5 characters, but it would be awful for say a city name since they could be any range of sizes, so you'd use varchar.
nText is the unicode version of a text field. Text fields are much like varchar but handle a lot more data.
Check out
this article, which explains the basics of the SQL datatypes pretty well.