It's not the fragmentation.
Your statistics are getting out of date. I'd guess either auto_update stats is off or these are large tables. The stats aren't getting updated, the estimated row count is far off the actual in the slow query and hence the plan the optimiser comes up with is a pile of garbage.
Gail Shaw
Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability