Selecting 3.3v or 5v to supply EEPROM by µC output
You could start from a classic adjustable LDO application:  

  

I picked the LP3874 because it has a very low dropout voltage of 24mV. By switching R2 between two values you can have 3.3V or 5V at the output, even with 5V in.  

Calculations
If we pick 4700\$\Omega\$ for R1, then R2 must be 2700\$\Omega\$ for 3.3V out, and 1500\$\Omega\$ for 5V out. So for R2 place 1500\$\Omega\$ in series with 1200\$\Omega\$ and place a switch parallel to the 1200\$\Omega\$.  

A BJT as switch is maybe not such a good idea, because of the \$V_{CE(SAT)}\$, but a small logic MOSFET is possible. Even a common BSS138 (with an \$R_{DS(ON)}\$ of 6\$\Omega\$) is usable.

edit
Not everybody seems to be convinced of the BSS138, but its resistance actually brings the voltages closer to their theoretical value than 0\$\Omega\$: 0.22% instead of 0.52% for the 5V, and 0.85% instead of 1% for the 3.3V.
Also it only has a \$V_{GS(th)}\$ of 1.5V maximum for \$I_D\$ = 1mA, which is about what flows through the resistor divider.