Make the most useful program within 100 characters
C - 47 bytes

The following program outputs every document ever written in human history, along with every document that will ever be written and loads of interesting texts that no human will ever come up with (along with a "little bit" of garbage in between). Just give it some time. Moreover, every time you run it, it will output different texts first! If that's not useful! (And all of that within half the character limit!)

main(){srand(time(0));while(1)putchar(rand());}


If you don't care about it outputting something else each time, you only need 41 bytes!

main(){srand(0);while(1)putchar(rand());}


Not quite C99 conform, but it compiles smoothly with gcc.exe (GCC) 4.7.0 20111220.

The rules state 


  Your program may be as slow as you want, and use as much resources as you want, as long you can prove it does what it meant to do.


No problem.

Some things, this program will output:


a solution to every Millennium Problem
tomorrow's newspaper articles
the complete works of Shakespeare's (of course)
your darkest secret
all the other answers to this question



   Not really, because (as ace correctly mentioned in the comment), rand() is only a pseudo-random generator, that will wrap around at some point - probably way too early to produce a lot of meaningful texts. But I doubt that getting data from a true (hardware) random number generator is remotely possible within 100 characters. I'll leave this here for the fun of it, though.


As Dennis notes, the randomness of the the algorithm, could be somewhat improved (within the character limit), by using rand()^rand()&gt;&gt;16 instead of rand().