Upvote:3
On most (perhaps all?) flights on the route YVR-IAH, you will need to clear US customs in Vancouver, not Houston. US CBP (Customs and Border Protection) has a separate area of the Vancouver airport where flights to the US depart. The advantage of this arrangement is that after you get on the flight, you have already cleared US customs. This means that in Houston (or your destination), the flight is a domestic arrival and there are no border formalities on arrival.
In any case, if your flight stops in IAH then you must clear US customs at some point during your journey. The US does not offer visa-free transit.
Upvote:4
No, you will NOT need to go through immigration or customs in Houston. However, not for the reason you're probably expecting...
Most flights from Canada to the US go through "pre-clearance" in Canada. This means that you will actually pass through US immigration and customs in Canada (in your case, Vancouver) before boarding your flight.
When you arrive in Houston, you will arrive as if you were a domestic US flight - you will be let out into the general airside area of the airport, with no further need to go through immigration or customs.
If what you are actually asking is will you need a US visa or ESTA for this question, then the answer is Yes, you will as you will be entering the US (whilst still technically in Canada). See this question for more details - the result is basically the same, just the location of immigrations/customs will be different in your case - Do I need a US visa to transit (or layover) through an American airport?