the bible, and any other reading, needs to be read in context. not only the context of the words, but the context of the times and writers. also, if you are really having a problem reconciling bits of scripture (or any other writing) it is best to go back a look at the original language. while a translation may be literally accurate, it can often cause a slight shift in meaning. the word Nephilim is a great example.
then, of course, you have the argument between moral law and secular law....remembering that jewish law was both the law of the land for the jews and the moral law