Mike,
>Like John said, not every project demands that flexibility. Besides 2 years down the road any flexible n-Tier app won't mean squat when its time to scale ite, simply because the code you wrote back then will be a joke compared to the avialable..
It's the logical n-Tier design work that will give you the flexibility, not the coding. Separating the logic and dealing with state issues in the design leaves you able to implement it in any language or platform of the future.