A method that has worked on older firmwares in order to manually reset the passcode involves deleting a couple of system files. I have yet to try it on fw3.0 but it should work fine. Your unit needs to be jailbroken in order to do this manual method.
To Manually Reset the Passcode:
1) Install any desktop software for browsing the iphone filesystem (iPhoneBrowser/iFunBox/SSH/DiskAid trial version).
2) Navigate to the directory /var/mobile/Library/Preferences/ and delete "com.apple.springboard.plist"
3) Then you can navigate to the directory /var/Keychains/ and delete "keychain-2.db"
4) After deleting the last file, reboot the iphone.
To give you an idea on how this worked, the com.apple.springboard.plist file contains the setting of your passcode turned-on. Deleting this resets the toggles back to default (after the final reboot) and takes care of that part of the problem. But since a passcode was already defined, the "keychain-2.db" file contains that information and deleting it clears everything up after the final reboot. Note that all other stored passwords you have on your iphone are also cleared along with it though.
This method will not work for non-jailbroken units because system files are not accessible without a jailbreak.