File size:
By default, the .NET 3.5 compiler uses a file alignment of 512 bytes, where earlier versions use a larger size (4096). Aside from the possibility of using different preprocessor directives over large sections of the code, this is the most likely explanation. The tighter alignment produces smaller binaries and will not cause any problems.
Edit: As requested, more information about this option. From MSDN (/filealign (C# Compiler Options)). This link includes instructions for how to set the property within Visual Studio.
Each section will be aligned on a boundary that is a multiple of the /filealign value. There is no fixed default. If /filealign is not specified, the common language runtime picks a default at compile time.
By specifying the section size, you affect the size of the output file. Modifying section size may be useful for programs that will run on smaller devices.
bin and obj folders:
The bin folder is the output folder, and the obj directory is the intermediate output folder. Your built executables will be placed in the bin directory (of course all of this is customizable, but this is the default).