If you do not do this, typically a 500 internal server error response code is returned. Make sure the server can execute CGI programs in that directory, i.e. you have moved it to the correct place and generally informed the server that this is a program not a file. Ensure your program can actually run any subsidiary programs that it needs to - that they are on it's path, readable and executable. The server error log will contain anything your script writes to standard error. It will also contain any errors generated by client requests.
Some servers can selectively enable and disable particular access methods.
If the CGI program works correctly stand alone, and when you telnet to it, but not with your form, then check the output of your form. Tester CGI scripts are available which echo back everything that is sent to them. Use one of these to ensure that your form is sending back exactly what you think it is. Look out for spelling variations. The interface can also be checked by running a server in verbose or debug mode, pointing your form at that, and filling it in.