well it depends which LCD.. you must check the datasheets, I once made it work an LM12864L directly BUT you SHOULD NOT READ data back from the LCD, to make a command efective or data output, just wait... DONT READ STATUS OF LCD!!!! of course a 3v3 buffer will help youif you even commit this error... again check the minum HIGH level on datasheets, (sometimes is 3v sometimes is 3.5v when it's 4v it'll not work...)
also you can make a level translator easily with some transistors, espacially if you are not going to read back data from the LCD...
how about writing and reading from the LCD? only a level translator could help... again check the web there is a bidirectional level translator with a single MOSFET by bit... it's not so hard to implement...