Nein, so pauschal kann man das nicht sagen.
Man muss sich klarmachen, dass include-Direktiven nichts weiter bewirken, als vom Präprozessor durch den Inhalt der angegebenen Datei ersetzt zu werden.
Du kommst also ohne die include-Direktive in der Headerdatei aus, wenn du in jeder .cpp-Datei, die diese Headerdatei benutzt, vor die include-Direktive der Headerdatei die für winsock2.h setzt. Entscheidend ist nur, dass hinterher, wenn alle include-Direktiven ausgewertet sind, der Inhalt von winsock2.h vor dem Inhalt deiner Headerdatei in der .cpp-Datei landet.