graphical lcd (nokia 3310)

lekuk, the problem is that voltage drop over a resistor depends on the current. With a diode the volatge drop is in theory independent from the current (practically, as you observerd, not really). If you know how much current the LCD draws, you can in deed calculate the resistor for 3.3Volt (R=U/I with U=5-3,3V). But that's even worse compared to the diodes, because the current the LCD draws will allways depend on the volatge it's driven by! And the resistor must be able to handle the electrical power, that it should drop-out.
Think of a regulator as a set of diodes/transistors that output a certain voltage level independent from the current that's drawn on the output. But, like a resistor, they just "burn" the difference voltage (i.e. create heat!).

One thing I don't understand in your drawing. Why do you connect the LCD Supply pin (Vdd) with an digital IO of Arduino? Just connect it with 5V. Maybe the problem is, that the current the LCD needs is above what an arduino pin can handle.