shift register that accepts 3.3V to drive several 5V relays
I will use darlington arrays like the ULN2003 to drive the relays


The ULN2003 requires an input voltage of 3 volts maximum to guarantee a collector current of 300 mA. See section 6.6 of the Texas Instruments data sheet for this part. This means there is no need to have a level shifter because a 3.3 volt compatible shift register will be able to adequately drive the ULN2003.


  I'd be happy for any pointers


However, using the ULN2003 might mean you don't get enough voltage across the relay. The ULN2003 has a collector saturation voltage of up to 2 volts and this eats away at the 5 volts you thought you might be able to drive the relays with. Look at figure 1 in the data sheet.

So, either use a MOSFET package or a greater supply voltage (maybe 6.5 volts) or choose a relay that will work down to about 3.5 volts.

A possible option is to use the TPIC6B595N - it is a shift register with N channel MOSFET drivers built in. However, it needs 5 volt logic signals on data in and clock but you should be able to find a level shifter circuit from 3.3 volts to 5 volts for data and clock fairly easily.