As others have already pointed out, in your version there are three main problems:
for e in entries:
if 'other' or 'things' not in e: #or returns first truthy value, and `if other` is always true. Also, you need and, not or.
entries.remove(e) #mutating the item you are iterating over is bad
print entries
Here is your version, revised to fix the above problems:
for e in words[:]: #words[:] is a copy of words, solves mutation issue while iterating
if 'other' not in e and 'things' not in e: #want words that both don't contain 'other' AND dont contain 'things'
print(e)
words.remove(e)
print(words)
And here are some alternative ways to do this:
import re
words = ['this doesnt contain chars you want so gone',
'this contains other so will be included',
'this is included bc stuff']
answer = list(filter(lambda x: re.search('other|stuff',x),words))
other_way = [sentence for sentence in words if re.search('other|stuff',sentence)]
print(answer)
print(other_way)