Here is a technique for isometric sorting with any sized blocks:
http://bannalia.blogspot.com/2008/02/filmation-math.html
The concept is simple, take any two visually overlapping blocks and you can calculate which should be drawn first by comparing their positions and sizes in isometric coordinate space.
The second part of it is a bit trickier, which involves sorting by that comparison. It's apparently a topological sorting problem but it can be thought of in a simpler way.
1. Make a list for each block of the blocks that need to be drawn first.
2. Keep track of what blocks have been drawn.
3. Draw the blocks whose list contains only drawn blocks.
4. repeat 2 and 3 until all blocks are drawn.
EDIT:
Here is a test:
http://dl.dropbox.com/u/5426011/examples17/iso3.4.13.capx
Sorting fails if any objects are overlapping in isometric space or if there is a loop of blocks that need to be drawn before each other.