Well the title says it all. Is a main() function absolutely essential for a C program?
main()
I am asking this because I was looking at the Linux kernel code,
Paxdiablo's answer covers two of the cases where you won't encounter a main. Let me add a couple of more:
WinMain()