How can I run a 32-bit app on 64-bit OSX 10.7.2?

OS X doesn't have an overall 64/32 bit mode; it runs individual programs in whatever mode seems "best" when they're started. Holding 3 and 2 as the computer boots will make its kernel run in 32-bit mode, but this has nothing to do with what mode programs run in. OS X can happily run programs in 32-bit mode under a 64-bit kernel, or programs in 64-bit mode under a 32-bit kernel.

If your program only includes 32-bit code, it will run in 32-bit mode without you having to do anything special. You can check this by running the file command on the executable (generally in AppName.app/Contents/MacOS/AppName. Here are a few examples:

$ file /Applications/Chess.app/Contents/MacOS/Chess
/Applications/Chess.app/Contents/MacOS/Chess: Mach-O universal binary with 2 architectures
/Applications/Chess.app/Contents/MacOS/Chess (for architecture x86_64): Mach-O 64-bit executable x86_64
/Applications/Chess.app/Contents/MacOS/Chess (for architecture i386):   Mach-O executable i386
$ file /Applications/VLC.app/Contents/MacOS/VLC
/Applications/VLC.app/Contents/MacOS/VLC: Mach-O universal binary with 2 architectures
/Applications/VLC.app/Contents/MacOS/VLC (for architecture i386):   Mach-O executable i386
/Applications/VLC.app/Contents/MacOS/VLC (for architecture ppc):    Mach-O executable ppc
$ file /Applications/Adobe\ Reader\ 9/Adobe\ Reader.app/Contents/MacOS/AdobeReader 
/Applications/Adobe Reader 9/Adobe Reader.app/Contents/MacOS/AdobeReader: Mach-O executable i386

... which tells me that Chess.app includes 32-bit and 64-bit Intel code ("i386" and "x86_64", respectively), VLC.app includes 32-bit Intel and 32-bit PowerPC ("ppc") code, and Adobe Reader only includes 32-bit Intel code.

You can also get some of this information (although not in as explicit detail) from System Information's system report (in the Software -> Applications section).

If an app has both 32- and 64-bit code, you can select which one to use in the Finder's Get Info window for the app (there'll be an "Open in 32-bit mode" checkbox), or by using the arch command on the executable (e.g. arch -i386 /Applications/theApp.app/Contents/MacOS/theApp). But you normally shouldn't need to do this, the OS does a good job of picking the best mode.

(One instance where you would need to manually override the mode selection is for plugin or library compatibility. If you have a 32&64-bit app, but it needs to be able to load a 32-bit only plugin or library, you'll have to force the program to run in 32-bit mode.)

If you have 64-bit programs that won't run right under a 32-bit kernel, they either have some sort of weird bug, or there's something even stranger going on. If you give the specific details, we might be able to figure out what's actually going wrong.

EDIT: It looks like the app is 32-bit only, and installs a 32-bit only kernel extension (kext). While the 32-bit app portion can run under any kernel mode, the 32-bit kexts can only load into a 32-bit kernel (it's like a plugin for the kernel). You can run the kernel in 32-bit mode by holding 3 and 2 at startup, or permanently with the command sudo systemsetup -setkernelbootarchitecture i386 (see Apple's KB #HT3773).

Note that it shouldn't be necessary to do anything special to open the app in 32-bit mode; since that's the only format included, it'll run in that mode no matter how it's launched (in particular, the arch command is not necessary).

If you have any 64-bit apps that don't run properly under a 32-bit kernel, that's a separate issue and I'd recommend posting another question about that.