So I ran MCPatcher, patched ModLoader & Forge, then tried to run optifine, and it broke the game.
Launching C:\Documents and Settings\Widener\Application Data\.minecraft\bin\minecraft.jar
java -cp "C:\Documents and Settings\Widener\Application Data\.minecraft\bin/minecraft.jar;C:\Documents and Settings\Widener\Application Data\.minecraft\bin/lwjgl.jar;C:\Documents and Settings\Widener\Application Data\.minecraft\bin/lwjgl_util.jar;C:\Documents and Settings\Widener\Application Data\.minecraft\bin/jinput.jar;" "-Djava.library.path=C:\Documents and Settings\Widener\Application Data\.minecraft\bin\natives" -Xmx768M -Xms512M net.minecraft.client.Minecraft
MCPatcherUtils initialized. Directory C:\Documents and Settings\Widener\Application Data\.minecraft\.
Exception in thread "main" java.lang.VerifyError: (class: cm, method: a signature: ()V) Incompatible argument to function
at pb.<clinit>(Block.java:94)
at qa.<init>(SourceFile:14)
at net.minecraft.client.Minecraft.<init>(Minecraft.java:232)
at hq.<init>(SourceFile:2073)
at net.minecraft.client.Minecraft.a(Minecraft.java:2380)
at net.minecraft.client.Minecraft.a(Minecraft.java:2367)
at net.minecraft.client.Minecraft.main(Minecraft.java:2431)