Marcus,
Sure, I'll kick in my two cents.
I see the words tier and layer as synomous. A tier is an encpasulated layer of the system architecture that has a defined interface to the tier above it and complies with the defined interface of the tier below it. If you replace the word tier in the previous sentence with the aword layer the sentence is still valid, so my conclusion that tier and layer are the same thing.
That's the simple answer. In the real world it is seldom that simple. For example, taking teh U/I and I/O layers. Assume we are building a system where the I/O layer will be exposed as a COM server in some way. The COM exposure is to allow a variety of presentation layers to be used. However, for our VFP presentation layer we decide to take advantage of the abilities of VFP talking to VFP classes and we allow a certain degree of bypassing the interface of the I/O layer in order to optimize performance. The question is, Is the I/O layer still a separate layer when the VFP U/I is using it since the VFP U/I is violating the interface contract? If a VB presentation is used, does the I/O layer become more encapsulated or not?
My point is this, a tier is what the system designer determined will be a tier. Out side the design the word has no meaning. It is impossible to determine if any given set of code and classes is or is not a separate tier unless you know the design.