Is there a way to have one material for cycles and the BI
Without material nodes
You can sort of do this by enabling and disabling material nodes. (note that you cannot use material nodes in your BI material with this approach)
For example:

Create a BI material:


Switch to cycles and enable material nodes:


Create a cycles material:


Switch to BI and disable nodes:



Your original BI material will appear unchanged.
With material nodes:
If you do need material nodes for your BI material, then you will have to create both the cycles material nodes and the BI material nodes in the same node tree:

Note that you can only add nodes for the render engine that is selected (though I think you can add any node regardless if you add them from python), so you will have to switch the selected render engine back and forth.