Reasons:
1) Work from home( More then half of US employees working from home). They can't find remote work from home job outside.As 99%mof jobs are office onsite job.
2) Less work: I have seen half of employees in many teams are only giving their 40-50% of time or effort while doing job. They are relax and don't want to work more either with same or even 10-20% hike.
3) years work at IBM: I have seen people don't quit IBM as they spend half or 60-80% of their working life at IBM.Years work at IBM is directly related to less chance of person quitting IBM as they spent long time at IBM and know it's couture and it's working style only and scare to go out and test waters.
4)Roll the ball: Because every team in IBM have its counterpart support team in India or coasta Rica,they have luxury of rolling the work ball to their India/coasta Rica support team and taking less responsibility or stress during work day and try to send maximum work load to offshore teams.Delegation of work is possible here.
5) No micro Managment: As upper or second line manager have no clue on what his/her lower level team is doing at technical level or support level,many teams employees are just enjoying and no more 100% productive as their first line manager are not doing micro Managment or asking frequent status update.No scrum Master,No agile methodology ,no daily status update meetings.
6) Vacation days:Anyone worked in IBM for 10+ years get 20 days of vacation plus 6 days of personal day off plus sick leave which is equivalent to 6 weeks of time off in an year and outside they will never get that much time off at most of places
7) work life balance: Many teams only work during day time from 8 to 6 and during off hours or weekend only occasionally people check email or reply back. Most of them don't work off hours or weekend for hours.Even someone work overtime their actual real working range Is in 40 hours to 50 hours. Not like outside companies where people work upto 60 hours a week on an average and spend their family time on work.Many people in IBM are enjoying perfect work life balance
8) Salary issue: IBM salary at par or little bit lower then industry standard. salary range remain same for last 15 years in USA. For any technical or non technical position for normal skillset if outside company hire they put specific range of salary based on experience (e.g Developer x in range of $100k to $120k at particular location).If someone joined IBM 5 or 10 years ago he had joined at same maximum level of $120k say 10 years ago and with even minimum 1% increase his salary may be $135k now .If he looks outside now most of 90% of companies offering salary at same maximum salary range of $120k .He has to really compete for that 10% of companies job if he want to get salary greater then $120k.
9)comfort level: once person work in same company,same people,same work,same technology with nothing to learn new every year ,he start feeling comfortable and does not want to change or jump ships. He is happy working in same environment of same people,same work,same technology.
10) wrong perception: Last factor is wrong perception of person that he think that he cannot find right job with right salary and right location and right working environment as he already tried few months or few years back and applied different positions or even gave interview and it did not work out for him that time .So he think he know where he stand and happy with his/her suitation. But one should understand it's only one job one has to change and not multiple jobs and not like graduation level exams where he/she has to get good grade or pass each exams in 4 years.If person keep trying and remain in job market and keep applying jobs its matter of that one day of that month of that year ,it will click and he/she will jump to next job and life will change for ever which he/she thinks will never change now. Destiny is made by oneself by effort. there is no one going to help you but YOU yourself.