"Er der en specifik måde at strukturere sit program på i C#?"
Det hurtigste svar er egentlig: Nej, det er der ikke. Det kommer helt an på hvad det er for en type klient/desktop app du vil lave.
Hvis du skal bruge en "tynd" klient hvor den ikke skal holde styr på data, men henter det hele et andet sted fra så kan du nøjes med 1 eller 2 projekter i dit klient-projekt. Det vil være selve GUI-klienten samt en mindre business-komponent der kan agere bindeled mellem dine data der ligger et andet sted og så klienten.
Derimod hvis du har brug for en "tyk" klient skal du jo lave en applikation der kan lave det hele selv (mere eller mindre). Det betyder også at du kan ende op med at skulle bruge en 3-lags arkitektur (med data-lag, business-lag og præsentations/GUI-lag) der så ligger i hver deres "library"/projekt i det overordnede projekt eller en LINQ-tilpasset arkitektur (hvis du vil benytte LINQ i en eller anden form til data-håndtering), hvor du har et kombineret data- og business-lag og oven på dette et GUI/præsentations/klient-lag. Der er reelt ikke rigtigt den store forskel på det og det du har når du udvikler med MVC og den struktur der benyttes der.
Det var den lille forklaring...

Hvordan havde du tænkt dig at din applikation skal se ud alt det ovenstående in mente (især ift. dine data)?