If you create named lists you can reference them using the INDIRECT function, which it seems like you already know.

What I would recommend for sub list 2 is to include an IF statement or VLOOKUP, depending on how many options you need to choose.

Example:

Create two lists, one called BOX2A, which includes LOWER PART I and LOWER PART 2 and one called BOX2B, which includes LOWER PART P and LOWER PART Q.

In the data validation for your second drop-down use formula that references those list names based on what is in the main menu.

=INDIRECT(IF(A1="Item A","BOX2A",IF(A1="Item B","BOX2B","")))

Or you can create a table of list names that should be associated with each specific Item in the main menu, which would be more efficient if you have several items in the main menu.

=INDIRECT(VLOOKUP(A1,G1:H5,2,FALSE))

G1:H5 being where your table is located, 2 being the column within the table where the names for the appropriate lists for the 2nd dependent box are found.

Here's a video that covers using the INDIRECT function for the first part of what you'll need to do http://www.youtube.com/watch?v=0Ey8-ILjjYs