The ORDER BY clause is invalid in views, inline functions, derived tables, subqueries, and common table expressions, unless TOP or FOR XML is also specified
This is because all of these objects are meant to return a row set, which may be further combined, queried against, or ordered. In previous versions of SQL Server (e.g. 2000), it would allow you to put "ORDER BY" inside some of these (e.g. VIEWs), especially if using the "TOP 100 PERCENT" dodge. However, 2005 got smarter, so even if you have TOP 100 PERCENT in a view definition, it will ignore the ordering - since it knows that TOP 100 PERCENT is all of the rows, it doesn't have to perform the sort to determine which rows to return.
Basically, ORDERing for purely presentational purposes is only meant to be done at the outermost level.