driving a 5v LCD with a 3.3v atmega328p microcontroller
If the 328p is signalling at 3.3V logic levels and the LCD wants 5V logic levels it should still work OK, unless it specifically says it won't that is. If you look at the normal thresholds for for 5V TTL logic compared with 3.3V TTL logic. Essentially the LCD will just receive good but weak 1's from the 328p and good strong 0's.

TTL thresholds, where Vdd = 5V, are >2V = '1', &lt;0.8V = '0'.

If the LCD is using CMOS thresholds then it might still work but the 1's will be a little sketchy as they will lie on the threshold.

If the LCD needs to signal back to the micro-controller then you'll have more problems and you'll have to use a level shifting IC or even a resistor divider can work.

You don't need to worry about current with signals from the 328p to the LCD as the LCD is always sinking current into it's inputs. (i.e. current flows from the 328p to the LCD to pull the input up to a logic 1 and the 328p will sink current to pull the line down to a logic 0)

This all said, you could use a level shifting IC(s) to interface the LCD with the 328p and not have to worry but it's an extra component that you should be able to do without.