Dictionary load function using hash table
Your constants could be named slightly differently; consider TABLE_SIZE and MAX_WORD_LENGTH.
You could also rename dictionary to better indicate that it's a file path and not a dictionary object.
Consider printing error output to stderr: fputs(stderr, ...) or fprintf(stderr, ...).
You're using a global nwords, but a local hashtable; this looks to me like a scoping error. You could consider just making a new struct.