The C99 standard states that reaching the } that terminates main() returns 0.
ISO/IEC 9899:1999 Programming languages -- C
Section 5.1.2.2.3 Program termination
A GCC specific solution to this problem could be to compile with "-std=c99", or link every submitted solution with something like the following translation unit:
#include <stdlib.h>
static void __dtor_retz(void) __attribute__ ((destructor));
static void __dtor_retz(void) { exit(0); }
Unless of course somebody explicitly returns or passes to exit() a value different from 0, which seems like a very unlikely scenario in this circle (in which case "-std=c99" seems like the better option).
DISCLAIMER: just want to lower the character count in size contest problems 