Is deferred enrollment normal or acceptable to graduate programs? What are the acceptable reasons for it? I am an undergraduate student majoring in computer science. I am currently doing graduate (Master's) program application for top US universities. 

However, just now I get a pretty nice research assistant internship which requires me to work for them for one year.

I think I might take a gap year between my undergraduate and graduate study for the internship. But if I am accepted by the university I want to go, can I ask for a defer enrollment? I know I can reapply the next year, but despite the new research experience, my professor might refuse to write me reference letter again , the things might change (more applicants, less slots) and I might not be accepted the next year(I am also wondering will turning down an admission affect my application for the same program the next year). So I am thinking if I can use the defer enrollment to "hold" the admission.

Is taking a research gap year an acceptable reason for defer enrollment? Or generally, what are the acceptable reasons to take a defer enrollment?
Many (but not all) graduate programs will let you defer enrollment for a semester or a year.  At the institutions I am familiar with, they did not particularly care about the reason for the deferral; in fact, some of them did not even ask, except in the most general terms, why the student wanted to delay entering the program.  People understand that students may have other obligations and things that they want to do, and taking on an internship would be a perfectly normal reason for a deferral.

To find you whether a particular program will let you defer acceptance for a year, you will have to contact the program.  However, assuming they allow deferrals, what you are proposing does not sound like it should be a problem.