For some reason, ColdFusion loses track of the query current
row on the outside loop when you have an inside loop. To solve
this, we wrote a custom tag, which we call duplicate_row, that
creates a query with exactly one row, the current row of the
outside loop. Then we use the new one row query in the inside loop.
This works well, and the overhead is not tremendous.
I've attached the source for the custom tag.