While you can't specify a material per object on each render layer you can get the same object rendered with two materials using render layers - this applies to both BI and Cycles. Render layers have a material override that applies to every object in that render layer, if only one object uses that layer then it is the only one that gets that material, you can create more than one render layer that uses the same scene layers but have different material overrides.
- You want the target object to be visible on a layer by itself.
- Create one render layer that renders only the target object's scene layer, set the layer material to use the first material.
- Create another render layer for the same scene layer and set the layer material to the second material.
- Create a third layer for the rest of the objects in the scene.
Composite the two object layers as desired and then composite over the background layer to get the final image.
Here I have one cube in a corner, one layer uses a plain blue material, one layer uses a red material with mirror at 0.4 and the third layer has the green walls that mix into the mirror of the red material. The cube is on scene layer one and the walls are on scene layer 2.