L.K.
It can be a physical problem that Ive read about where the child doesn't get the body signals that he has to poop (his brain and bowel aren't communicating) or where he is so constipated that it hurts to much to let the poop out: http://www.askdrsears.com/topics/parenting/discipline-beh...
It can also be emotional/psychological and tied to just about anything (he may not like the smell, or feeling the poop come out, or being on the toilet, who knows). Your husband needs to understand that no 7 year old child wants to poop in their pants nor feel the shame associated with it. Even if he is the laziest child on the planet, no child WANTS to do this. Calling him lazy will only deteriorate his self esteem more and add more problems. He will internalize that he is lazy and who
knows what other behaviors will result. Or every time he does something wrong he'll blame it on being lazy. It sounds like your husband has some issues of his own and he needs to put his childs needs first rather than his know it all ways and bullying you into submission by starting a fight because life just isn't always the way he wants it to be.
I have a sister in law who has Aspergers and therefore any problems her kids had was a bad reflection on her so she would yell at them. Her 10 year old son had this same poop problem and she would yell at him and call him lazy. Guess what- the problem didn't go away but Im pretty sure she messed up his self esteem as well as his love for her. Its a horrible way to treat a sweet little boy who really only wants to be happy, to please you and to be loved and understood.
Take him to a doctor and to a therapist and figure it out. Unless your husband doesn't work and spends every second with you he doesn't even need to know until its better. Be this boys mom and do what needs to be done.