Dictionaries have no order.
However, there is a class in the standard library called collections.OrderedDict that retains the order of insertion. And you can create one like this:
>>> collections.OrderedDict(sorted(myDict.iteritems(), key=lambda x: x[1][0][1])
OrderedDict([('b', [['5', 1], ['6', 5]]), ('c', [['446', 2], ['6', 11], ['67', 86]]), ('a', [['5', 4]])])
myDict.iteritems() returns a sequence of (key, value) tuples. (You can also use items, which will return the sequence as a list instead of an iterator—but it will work in Python 3, which iteritems will not.)
sorted sorts them by the key.
The key is a function that takes the value from one of these tuples, the 2nd element of that value, and the 1st element of that 2nd element, which is what you wanted to sort by.
The OrderedDict class does not exist in Python 2.5, but it's implemented in pure Python. If you look at the docs for 2.7, there's a link to the code, which you can copy and paste into your 2.5 program. Or you can use the ActiveState recipe that was borrowed into the standard library, or look for a module at PyPI that does it for you.