You use list comprehensions and various object functions very well for a "noob", so my congratulations there!
Still, I can recommend some improvements. First, the readlines function on file objects comes in handy (note that filew.writelines will do the reverse):
words = filer.readlines()
And so too does the random.choice function (plus the strip function, for removing the newline character at the end of the word):
orgwordstring = random.choice(words).strip()
To turn a string into a list:
orgword = list(orgwordstring)
And to replace all the middle letters with _s, you can use the * operator on a string (e.g. ("a" * 4) becomes "aaaa"):
newword = list(orgword[0] + ("_" * (len(orgword) - 2)) + orgword[-1]) Instead of find, a good tip is to use the "in" operator instead:
if what == "":
sys.exit()
if what not in orgword:
life -= 1
print "Sorry this letter isn't included in the word."
else:
for position, letter in enumerate(orgword):
if letter == what:
newword[position] = letter I've also done away with find here, instead opting for a for-loop (the enumerate function encodes the index with each item in the list). However, your use of find wasn't a bad decision; for large pieces of text using the find function is a must. However, since words are usually less than 10 letters long, the efficiency gains by using find are very small. Also, with a for-loop you can guarentee that the loop will finish, whilst it's easier to get the logic wrong in a while loop.
Which, coincidentally, is what's wrong with your code. You don't change the "finding" variable in the loop, so it keeps replacing the same letter over and over again:
finding=''.join(orgword).find(what)
while finding!=-1:
newword[finding]=orgword[finding]