The difference that exists between two terms that are sometimes used interchangeably - layer and tier. Note that using layer and tier interchangeably is a mistake in all situations - and, frankly, I often use these terms as they were synonyms. Fact is, however, they are not synonyms. A layer refers to pieces of software that are logically separated, but typically live within the same process and machine. A tier, instead, refers to pieces of software that live in distinct processes or AppDomains or machines. You can allocate a layer on a tier but not vice versa. You can have multiple layers on the same tier. A tier refers to physical separation; a layer is about logical separation. So if you take it literally a business tier is a distinct server where you run the code that forms the business logic. Whenever tiers are involved you should have a remoting technology all around to permit communication. Whatever you call a layer can be moved any time (with some extra work) to a tier.
Hope you enjoyed.. :)