All of Doc's suggestions are right on the money. The lazy person's solution would be to recode the column so the values are:
1 - X
2 - Z
3 - Y
4 - W
If this is acceptable, it's definitely a simple solution (and one I've used many, many times). If you MUST have the values stay X, Y, W, Z; I would recommend Doc's approach of recording the values similar to above (1 - X, 2 - Z,...) and creating a custom format that causes 1 - X to display as X. If you then order by the Unformatted values, you're good to go. As Doc mentions, this trick will not necessarily works in every possible situation, though it works in most of them.