1. Install SIMBL, http://www.culater.net/software/SIMBL/SIMBL.php.
2. Install Maximizer, http://chpwn.com/apps/maximizer.html.
3. Optional, but recommended step. Maximizer breaks full screen in some applications that already support it. To add it on a per application-basis edit SIMBLTargetApplications key from '/Library/Application Support/SIMBL/Plugins/Maximizer.bundle/Contents/Info.plist' by appending entries like explained at http://code.google.com/p/simbl/wiki/Tutorial, no. 3.
Example for TextEdit.
<key>SIMBLTargetApplications</key>
<array>
<dict>
<key>BundleIdentifier</key>
<string>com.apple.TextEdit</string>
<key>MaxBundleVersion</key>
<string>*</string>
<key>MinBundleVersion</key>
<string>*</string>
</dict>
</array>
Use the following applescript as a trigger with shortcut ⌃⌘F and scope per application(s) in Quicksilver (http://qsapp.com) or use a hotkey application, to enable/disable full screen mode.
tell application "System Events" to tell (first process whose frontmost is true)
delay 0.05 -- tweak it as necessary
if front window exists then
tell front window
if value of attribute "AXFullScreen" then
set value of attribute "AXFullScreen" to false
else
set value of attribute "AXFullScreen" to true
end if
end tell
end if
end tell
Lex adds: I haven't tested this one.