Hi All
I wasn't sure whether to start a new thread or respond to this one, but there is info here which is useful for ref. so I'll stay here.
I've just had this same problem, but I can offer a solution. I was given a "last" version of a Due and it too worked fine with 5V from USB but not with ext. power connected.
On examination, I found that the 5V reg on this variant (MPM3610) had been fitted with the wrong value feedback resistor, R28, which was 10k instead of 100k, hence the 5V and subsequent 3v3 rails were uselessly low. Replacing this resistor with 100k is the solution - I only had an 0803 one and it wasn't a high precision type, but it just fits the PCB pads and gives me 4.98V which is close enough.
This wrong resistor had been fitted during manufacture, which unfortunately suggests that there may well be a batch of Dues like this out there and proves that Arduinos are not necessarily fully tested prior to shipment. I suspect that the wrong reel of resistors was placed in the pick-and-place machine at some point. There is another 100k resistor, R30, also part of the MPM3610 cct, but this is not a high-precision part like R28 is so will have come from a different reel.
Hope this helps anyone out there with the same problem. Replacing R28 is a fiddly job but if I can do it with my fat fingers then anyone can :-)